2010-09-20 2 views
0



сайт, чтобы увидеть ошибку (нажмите на дом, модели, и т.д. ссылки): http://bit.ly/9AE2RIJQuery: Использование нагрузки команды()



Я пытаюсь получить #content-container из другие страницы для загрузки на текущие страницы #content-container. Я могу это сделать, но то, что .load в JQuery, кажется, делает это сделать так:

<div id=content-container style="display:block"> 
    <div id=content-container> 
     OTHER PAGE CONTENT HERE 
    </div> 
</div> 

Поэтому, когда я использую прозрачный фон, как я на # содержимого контейнера, то он создает 2 фонов, таким образом, испортить прозрачность. Он также, кажется, наследует отступы или поля # content-container, давая ему смещение.

Не существует способа взять только содержимое контейнера содержимого и загрузить его в текущий контейнер содержимого; Такие, как:

<div id=content-container> 
     OTHER PAGE CONTENT HERE 
</div> 

код JQuery здесь: (взято из примера на http://net.tutsplus.com/tutorials/javascript-ajax/how-to-load-in-and-animate-content-with-jquery/)

$(document).ready(function() { 

    var hash = window.location.hash.substr(1); 
    var href = $('#sub-navigation li a').each(function(){ 
     var href = $(this).attr('href'); 
     if(hash==href.substr(0,href.length-5)){ 
      var toLoad = hash+'.html #content-container'; 
      $('#content-container').load(toLoad) 
     }           
    }); 

    $('#sub-navigation li a').click(function(){ 

     var toLoad = $(this).attr('href')+' #content-container'; 
     $('#content-container').hide('fast',loadContent); 


     //$('#load').remove(); 
     //$('#wrapper').append('<span id="load">LOADING...</span>'); 
     //$('#load').fadeIn('normal'); 
     //window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); 
     function loadContent() { 
      $('#content-container').load(toLoad,'',showNewContent()) 
     } 
     function showNewContent() { 
      $('#content-container').show('normal',hideLoader()); 
     } 
     function hideLoader() { 
      //$('#load').fadeOut('normal'); 
     } 
     return false; 

    }); 

}); 

Пожалуйста, обратите внимание, что комментарии будут возможности в будущем.

ответ

2

Когда вы установите переменную toLoad, добавьте все дочерние селектор, чтобы вы не получили родительский элемент.

например. -

var toLoad = $(this).attr('href')+' #content-container > *'; 

Таким образом, toLoad вар будет иметь только ребенок # содержимого контейнер

Или, если это не работает для вас, вы можете вызвать нагрузки на элементе не добавляется к йоту но вот так:

var $div = $("<div/>"); 
$div.load(toLoad); 
$("#content-container").html($div.contents()); 
+0

Perfect. Благодарю. – ParoX

0

Загрузите содержимое в переменную/объект

Как так:

var contentContainerContent = $.load(toLoad,'','') 

и добавить его в контейнер контента, как так

$("#content-container").html(contentContainerContent); 
+0

Функция 'load' будет устанавливать' html() 'селектора, указанный для возвращаемого. Итак, '$ (" # content-container "). Load (toLoad, '', '');' то же самое – Robert

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