2015-02-08 2 views
0

У меня есть страница с большим количеством дивы на что вкладки использования:Загрузка содержимого HTML в DIV по щелчку

<div class="tab-box"> 
    <a href="#companyinfo" class="tabLink activeLink">Company</a> 
    <a href="#contacts" class="tabLink">Contacts</a> 
</div> 

<div class="tabcontent" id="companyinfo"> 
content 1 
</div> 

<div class="tabcontent hide" id="contacts"> 
content 2 
</div> 

как я могу загрузить только каждый DIV, когда вкладка была нажата?

я думал об этом:

function LoadDivPage(pagename, divname) { 
    var page = pagename 
    $('#LoadingDiv').show(); 
    $(divname).load(page, function(){ 
     //new html exists now 
     $('#LoadingDiv').hide(); 
    }); 
    $("html, body").animate({ scrollTop: 0 }, "slow"); 
} 

<a href="#contacts" class="tabLink" onclick="LoadDivPage('http://www.google.co.uk/', '#contacts');">Contacts</a> 

, но его не загружая google.co.uk и им не уверен, что это лучший способ

+0

Попробуйте http://getbootstrap.com/javascript/#tabs –

+0

вы не можете сделать это (в частности * загрузки Google в сНу *), если запрос не имеет то же самое происхождение. (или сервер настроен так, чтобы разрешать запросы на кросс-начало). См. [CORS] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) –

ответ

1

Это работает, загружая контент только в том случае, если целевой div не является av ailable:

$(function(){ 
    var LoadDivPage = function(pagename, divname) { 
     var page = pagename, 
      containerClass = 'container-'+divname, 
      container = $('<div/>').addClass(containerClass); 

     if($('.'+containerClass).length > 0) return; 

     $('#LoadingDiv').show(); 

     $.get(page, function(data){ 
      container.html(data).appendTo($(divname)); 
      $('#LoadingDiv').hide(); 
     }); 
     $("html, body").animate({ scrollTop: 0 }, "slow"); 
    } 

    $('.tabLink').on('click', function(e){ 
     e.preventDefault(); 
     var page = $(this).data('page'), 
      div = $(this).attr('href'); 

     LoadDivPage(page, div); 
    }); 
}); 

http://jsfiddle.net/ag901f8m/2/

0

Что-то вроде этого:

$('.tabLink').on('click', function(e){ 
    e.preventDefault(); 
    $('.tabLink').addClass('activeLink').not(this).removeClass('activeLink'); 
    $('.tabcontent').addClass('hide'); 

    //Id of current tabcontent 
    var currentTab = $(this).attr('href'); 
    $(currentTab).removeClass('hide'); 
}); 

Example

+0

. Это не загружает фактическое содержимое onclick, хотя – Charles

+0

отображает div с id, равным href value clicked element –

Смежные вопросы