2011-01-22 67 views
0

我正在關注「How to Load In and Animate Content with jQuery」,並且一切正常,但如果我在加載的<div/>中有其他鏈接,則腳本不起作用。任何人都可以在下面的代碼中發現錯誤?從站點索引如何使用jQuery加載動態內容?

$(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; 

    }); 

}); 

我的情況

  • 開始
  • 點擊 '聯繫人'
  • 接觸 '內容的div' 被載入
  • 接觸內容的div我有其他鏈接「的地圖。 HTML'我想打開它相同在其他,只有'內容div'加載 - >它不工作 - 網站正在加載正常
+0

嘗試運行動作你運行後**文件已準備就緒**你的ajax請求完成後。 – shybovycha 2011-01-23 00:14:31

回答

0

如果您正在討論的內容中的鏈接是.nav li a鏈接,那麼這裏的問題是.click事件只會分配一次(在documentready上),並且不會影響在文檔已準備好之後加載的內容。

所以,最簡單的方法將改變$('.nav li a').click(function(){

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

與此事件處理程序將被安裝到加載後以及內容。


注:根據您的jQuery的版本,您可能需要使用不同的方法爲這個.live行爲:

$(selector).live(events, data, handler);    // jQuery 1.3+ 
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+ 
$(document).on(events, selector, data, handler);  // jQuery 1.7+