我准备实现类似Twitter的无限滚动到我的产品页面。也就是说,当我越过某些滚动阈值时,使用AJAX加载额外的页面部分。但是我不确定在加载之后标题中的主题是如何受到影响的。我的问题如下:
对于使用AJAX加载的每批新元素,DOM是否会针对这些新元素进行更新或完全更新?旧DOM会发生什么?
我是否可以在这些新的DOM元素上使用Javascript和jQuery,就像我在DOM上为页面开始一样?我想这与第一个问题有关。
对于每个负载,我将加载说9个新产品。每个产品都有一个FB Like按钮,它使用FB Open Graph API。新产品Like元素是否会经历与我开始的DOM元素相同的异步修改,以便可以提供正确的Like提交?
答案 0 :(得分:1)
让我们一个接一个地开始。
您的意图中的DOM应该只更新,而不是更新。那里 不是旧DOM,因为你要做的是在它们上插入新元素。
是的,你可以做到这一点。尽管事件要小心 听众,因为如果你错了,你必须附上新的 再次监视这些新节点的事件。例如:
$('body')。on('click','a.addToCart',function(){})//将匹配当前和未来的节点 $( 'a.addToCart')上( '点击',函数(){})。 //仅匹配当前节点
是的,您需要再次对每个按钮执行相同的处理。
奖励提示:如果您关心移动环境,则应该通过删除不需要的节点来保持DOM的清洁。
答案 1 :(得分:0)
只需使用document.appendChild()向DOM添加新元素即可。 (http://www.w3schools.com/jsref/met_node_appendchild.asp) 重建漏洞页面会浪费时间;)
应该没问题。我做过很多次没有任何问题。如果您使用的是jQuery Mobile,则必须刷新新元素。 (看看你正在使用的jQuery Mobile Widget的方法,如果需要刷新的话)
我对facebook api没有多少经验,但我会说“是”=)
编辑:我的回答中有一个指向德国网站的链接。我忘了这是一个英文网站;)