簡體   English   中英

腳本不能處理加載Ajax的內容

[英]script not working on Ajax-loaded Content

我有一個jquery驅動的投票系統,其他頁面上的項目是通過ajax加載的,但是在加載ajax的內容上,jquery投票需要刷新頁面以便進行投票處理。

http://ohmygosh.vr.lt/

我認為問題是在這個文件中的行為(?)但我不是很確定。 我沒有任何代碼可以啟動,因為我甚至不知道從哪里開始。 我該如何解決這個問題?

似乎您正在使用SmartAjax加載頁面內容。 SmartAjax的作用是更改頁面URL(使用pushState或hash),加載數據並用加載的內容替換#posts div的內容。

問題是您正在偵聽來自DOM元素的單擊事件,這些事件稍后會被刪除並替換為新的DOM元素。 因此,不會偵聽來自ajax加載內容的單擊事件。 live()在這種情況下無濟於事。

要解決此問題,您至少有以下兩個選項:

1)使用jQuery的delegate()附加處理程序並使用#posts div作為根元素,因為它在加載新內容后仍然存在。

這樣的事情應該有效:

$('#posts').delegate(':input', 'click', function() {
    var value = $(this).val();
    alert('You have clicked thumbs up/down, value: ' + value);
    return false;
});

2)在數據加載完成后,向加載的項添加單擊偵聽器。

注意:啟動jQuery 1.7你應該使用on()而不是delegate()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM