我有一些jQuery脚本选择我运行部分页面刷新的区域内的元素。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中的元素的方法。
我的问题是:什么是将脚本重新附加到页面刷新区域的最佳方式。
谢谢你的任何建议。
感谢您的回答,作为快速跟进问题。其中一个附加到元素的脚本是.tooltip函数,该函数在mouseenter上触发。现在,如果我把它这样的: $( “机构”)的委托( “工具”, “了mouseenter”,函数(){$ (本).tooltip({// 事情 \t} ); }); 然后,用户必须先将鼠标悬停在元素上,然后再次将鼠标悬停在工具提示上。如何使用.delegate或.live,而不必让他们进行两次鼠标移动? – BorisKourt 2010-08-26 21:31:46
我认为这与绑定级别有关。查看.delegate中的链接,并考虑鼠标事件,该事件要尽可能保持为本地,以便它在右元素上触发,而不是在父元素上触发。请牢记.delegate,你可以链接,而.live不能。你可以在这里看到一个博客:http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery – 2010-08-27 15:54:16
谢谢Mark,这非常有帮助。 – BorisKourt 2010-08-28 03:14:47