我有许多jQuery脚本,用于选择我运行部分页面刷新的区域内的元素。
我正在使用此css技巧代码段来刷新页面的这一部分:
$('#refreshbutton').click(function() {
var url = "http://myUrl.com/indexTest.php?ID=" + Math.random();
setTimeout(function() {
$("#maindisplay").load(url+" #maindisplay>*","");
}, 100);
});
问题是#maindisplay中的元素被更改,因此被认为是dom中的新元素。由于选择这些元素并将函数附加到它们的脚本在domready上运行而不是在部分刷新期间运行,因此这会产生问题。
到目前为止,在部分刷新之后,我一直无法找到将脚本重新附加到#maindisplay中的元素的方法。
我的问题是:将脚本重新附加到页面的刷新区域的最佳方法是什么。
感谢您的任何建议。
答案 0 :(得分:1)
您需要使用live()
功能附加点击处理程序。
答案 1 :(得分:0)
load()不接受回调函数,因为它是第二个参数吗?为什么不将事件处理程序重新附加到具有该函数的元素?
$('#result').load('ajax/test.html', function() {
//reattach event handlers here.
});
答案 2 :(得分:0)
您可以考虑以下选项:
请注意:我会查看.delegate(),并在最近的版本中添加了上下文选择(例如,在1.4.2中提供)。