2010-09-20 95 views
0



的網站上看到的錯誤(單擊主頁,模型等環節):http://bit.ly/9AE2RIJQuery的:使用load()命令



我試圖讓#content-container的其他頁面加載到當前頁面#content-container。我能做到這一點,但什麼的JQuery的.load似乎做的是讓它像這樣:

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

因此,當我使用透明的背景就像我在#內容的容器,那麼它會創建2點的背景,從而搞亂了透明度。它也似乎繼承了#content-container的填充或邊距,並給它一個偏移量。

是否沒有辦法只取得#content-container的內部並將其加載到當前的#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

當您設置對負載變量中添加所有的孩子選擇器,這樣你就不會得到父元素。

例如 -

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

這樣,對負載VAR只會有#內容容器

的兒童,或者不適合你,你可以調用沒有添加到DOM元素上的負載但是像這樣:

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

完美。謝謝。 – ParoX 2010-09-20 21:48:39

0

加載內容到一個變量/對象

像這樣:

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

,並把它添加到內容容器,像這樣

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

load函數將設置選擇器的html()指定爲返回的任何值。所以'$(「#content-container」)。load(toLoad,'','');'是一樣的東西 – Robert 2010-09-20 21:44:36