我有一些DOM组件来绑定事件,如click、hover等.由于我将JSF与AJAX结合使用,有时这些组件会重新呈现,然后必须将DOM事件重新绑定到它们。
为了实现新呈现的组件的自动重新绑定,我向JSF事件注册,以便以这种方式重新绑定:
jsf.ajax.addOnEvent(function (data) {
if (data.status === "success") {
$("#someid").click(function() {...});
}
});这个解决方案的问题是,当组件没有被重新呈现,但是发生了一个AJAX事件时,绑定就会加倍和三倍,等等。
出现在我头上的解决方案是为每个DOM组件设置一个标志,当组件绑定到一个事件时,该标记设置为true。它会起作用的,但有点麻烦。
我想知道是否有更好的解决方案是我所不知道(或无法想到的),比如某种jQuery特性,它允许程序员在每个DOM组件中避免一个以上的绑定。
谢谢!
发布于 2011-12-07 07:46:02
这正是jQuery.live()的作用所在。
编辑:正如注释中所指出的,从jQuery 1.7开始,正确使用的方法是jQuery.on()
https://stackoverflow.com/questions/8411916
复制相似问题