如果我一个函数分配给一个变量foo的,有没有办法选择不具备的所有元素给定的,他们通过像$('.elementsWithClass').click(foo)
结构分配结合富?选择所有没有绑定到给定函数的元素?
我的动机是我们有ajax请求替换部分DOM,我需要一个简单的方法来重新绑定不基于.live/.on的事件处理程序,因为我们在应用程序的某些部分控制事件冒泡。
如果我一个函数分配给一个变量foo的,有没有办法选择不具备的所有元素给定的,他们通过像$('.elementsWithClass').click(foo)
结构分配结合富?选择所有没有绑定到给定函数的元素?
我的动机是我们有ajax请求替换部分DOM,我需要一个简单的方法来重新绑定不基于.live/.on的事件处理程序,因为我们在应用程序的某些部分控制事件冒泡。
关于这样做的动机,由于它们被分配了$(".elementsWithClass").click(foo)
,所以应该在DOM更新后重新选择它们。
$("#container").load("/new/content.html", function() {
$(this).find(".elementSWithClass").click(foo);
});
因为他们需要反弹,这必然意味着他们已经被更换,这意味着它不会做任何好他们根据他们是否有一个处理程序来选择。
我建议在再次绑定之前解除绑定,因为在页面上可能有先前绑定的元素。或者防止foo内冒泡。例如:http://jsfiddle.net/gromer/QAyB5/。如果取消注销解除绑定行,则每次单击只会将一行写入控制台(单个函数调用)。评论时,您会为每个点击绑定获取一行。 – Gromer 2012-08-16 18:48:14
@Gromer:这取决于DOM如何被替换。以我的例子来说,'#容器'内的所有内容都将被替换,因此不需要手动解除绑定。绑定只发生在#容器内。如果我们从'document'解除绑定,我们可能会解除一些不应该绑定的绑定。 – 2012-08-16 18:50:03
啊,好点,因为容器内容被*取代*。好的电话,先生! – Gromer 2012-08-16 18:51:36
[测试如果事件处理程序绑定到jQuery中的元素](http://stackoverflow.com/questions/1236067/test-if-event-handler-is-bound-to-an-element-in -jquery) – MrOBrian 2012-08-16 18:36:02