2016-01-12 323 views
0

我創建了一個ajax加載站點,這是新的,並且通過.load方法加載到容器中的鏈接掙扎,然後不以同樣的方式運行點擊時......他們只是將頁面加載爲html標準。通過ajax加載的鏈接不會通過ajax加載

如果有關係我將wordpress用作cms並從永久鏈接加載頁面。

我用類似這樣的東西:

$(document).ready(function() { 

    $('a.ajax').click(function(){ 

     var toLoad = $(this).attr('href')+' .content'; 

     $('.ajax-wrapper').animate({opacity: 0}, 1000, function() { 

      $('.content').load(toLoad,'',function() { 

       $('.ajax-wrapper').animate({opacity: 1}, 1000); 

      }); 

     }); 

     return false; 

    }); 
}); 
+0

你有一個語法錯誤附近ajax-元素wrapper.animate –

+0

謝謝,修正了錯誤 – MD86

回答

0

你需要的可能是事件委託,基本上你的事件綁定到現有停留在throught文件的生命

$(document).on('a.ajax', 'click', function(){ 

    var toLoad = $(this).attr('href')+' .content'; 

    $('.ajax-wrapper').animate({opacity: 0}, 1000, function() { 

     $('.content').load(toLoad,'',function() { 

      $('.ajax-wrapper').animate({opacity: 1}, 1000); 

     }); 

    }); 

    return false; 

}); 
1

你可能只需要event.preventDefault(),該事件作爲一個參數傳遞給點擊監聽功能。文檔:https://api.jquery.com/event.preventdefault/

+0

是的,'返回false;'在'a'標籤的情況下不會停止傳播。 [讀取](http://stackoverflow.com/questions/11184276/return-false-from-jquery-click-event) – manta

0
$('body').on('click', 'a.ajax', function (e){ 


     var toLoad = $(this).attr('href')+' .content'; 

     $('.ajax-wrapper').animate({opacity: 0}, 1000, function() { 

      $('.content').load(toLoad,'',function() { 

       $('.ajax-wrapper').animate({opacity: 1}, 1000); 

      }); 

     }); 

     return false; 


     });