2012-12-27 31 views
1

我準備實現類似Twitter的無限滾動到我的產品頁面。也就是說,當我跨越特定的滾動閾值時,使用AJAX加載額外的頁面部分。但我不確定標題中的主題如何在裝載後受到影響。我的問題有以下幾點:使用AJAX,Javascript/jQuery,DOM和Facebook無限滾動喜歡按鈕

  1. 對於每一批新的元素被裝載AJAX,將DOM可以對這些新元素更新或完全更新?舊的DOM會發生什麼?

  2. 我可以在這些新的DOM元素上使用Javascript和jQuery,就像我在DOM上開始使用頁面一樣嗎?我想這與第一個問題有關。

  3. 對於每個負載,我會加載9個新產品。每個產品都有一個使用FB Open Graph API的FB Like按鈕。新產品Like元素是否會經歷與DOM元素相同的異步修改,從而開始使用適當的Like提交?

回答

1

讓我們一個一個地開始。

  1. 根據您的意圖,DOM只應更新,不得更新。 不是舊的DOM,因爲你所做的是在它們上插入新的元素。

  2. 是的,你可以做到這一點。對於事件 聽衆,請小心,因爲如果您將其錯誤地啓動,您必須再次將新的 事件監聽器附加到這些新節點。例如:

    $('body')。on('click','a.addToCart',function(){})//將匹配當前和未來節點 $('a.addToCart')。上( '點擊',函數(){}); //只匹配當前節點

  3. 是的,您需要再次爲每個按鈕執行相同的過程。

特別提示:如果你關心移動環境中,你應該讓你的DOM一樣乾淨,你可以刪除你不需要的節點。

0
  1. 只需使用document.appendChild()將新元素添加到DOM即可。 (http://www.w3schools.com/jsref/met_node_appendchild.asp) 重建洞頁將浪費時間;)

  2. 應該沒有問題。我做了很多次,沒有任何問題。如果你使用的是jQuery Mobile,你可能需要刷新這些新元素。 (看看您所使用的模具的jQuery移動Widget的方法,如果需要刷新)

  3. 我沒有與Facebook的API太多的經驗,但我會說「是」 =)

編輯:我有一個鏈接到我的答案德國網站。我忘了這是英文網站;)