如何在jquery中使用单个undelegate方法删除多个事件委托

时间:2012-07-27 17:37:59

标签: javascript jquery

我是否可以使以下内容更简单(而不是使用' undelegate'两次)?

$("#div1").undelegate("div", "mouseenter").undelegate("div", "mouseleave");

我不希望除了mouseenter和mouseleave之外的事件处理程序受到干扰。

2 个答案:

答案 0 :(得分:20)

用空格拆分事件。

$("#div1").undelegate("div", "mouseenter mouseleave");

您应该使用onoff

$("#div1").off("mouseenter mouseleave", "div");

http://api.jquery.com/undelegate/

  

.undelegate()方法是一种删除具有的事件处理程序的方法   使用.delegate()进行绑定。从jQuery 1.7开始,.on()和.off()   附加和删除事件处理程序首选方法。

答案 1 :(得分:1)

在这种特定情况下,您可以使用mouseentermouseleave的简写.hover()

​$("#div1").off("hover", "div");

从jQuery 1.7开始,.off()是删除事件处理程序的推荐方法。