2011-01-23 147 views
0

我有動態加載內容的問題。我有菜單,其中點擊div後隱藏,他們正在加載新的內容,他正在移動..它工作正常,但是在新的內容,我有子菜單,這將使用相同的效果爲菜單,但是問題和鏈接導致立即通過jQuery動態加載內容

也許這是更容易理解:):我有CONTNET DIV,這是動態加載如果我點擊菜單鏈接...新的內容加載正確。在新的內容我有子菜單,但如果我點擊鏈接那裏所有的網站重新加載...我能做些什麼,如果我想只加載「內容的div」 ..

什麼是錯誤的代碼?

$(document).ready(function() { 

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

    $('.nav li a').click(function(){ 

     var toLoad = $(this).attr('href')+' #content'; 
     $('#content').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').load(toLoad,'',showNewContent()) 
     } 
     function showNewContent() { 
      $('#content').show('normal',hideLoader()); 
     } 
     function hideLoader() { 
      $('#load').fadeOut('normal'); 
     } 
     return false; 

    }); 

}); 

我試圖用你的建議,但不影響..

我沒例如網頁..

http://zaciszepuck.pl/site/

你可以看到,如果你點擊菜單上所有這是確定的,但如果你要點擊「歡迎內容」的所有網站的子菜單被重新裝載,但如果你再次點擊,只有內容事業部加載..

任何人有ñ想法?

+0

請糾正你的英文 - 很難解決你的問題。 – shybovycha 2011-01-23 23:17:16

回答

0

你的母語是什麼?我認爲它會更容易回答。

是不是?你點擊主菜單中的任何項目並使用AJAX加載到頁面新菜單,但新菜單中的項目不會調用AJAX請求?

如果是這樣,你需要的AJAX函數調用應用到新的菜單,其項目或孔加載的內容,只要你喜歡。

$(".nav li a").click(function funcName() { 
    ... 
    $("#content").load(toLoad, function(){ 
     showNewContent(); 
     $(".nav li a").click(funcName);/*or other submenu selector*/ 
    }); 
    ... 
}); 

我認爲你的代碼太複雜了,它需要一些改進。

0

從我能理解你的查詢,這可能做到這一點。

$('.nav li a, #content a').live('click', function(){ 

     var toLoad = $(this).attr('href')+' #content'; 
     $('#content').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').load(toLoad,'',showNewContent()) 
     } 
     function showNewContent() { 
      $('#content').show('normal',hideLoader()); 
     } 
     function hideLoader() { 
      $('#load').fadeOut('normal'); 
     } 
     return false; 

    });