9

以下をもっと簡単にすることはできますか(「undelegate」を2回使用する代わりに)?

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

mouseenterとmouseleave以外のイベントハンドラーが邪魔されたくない。

4

2 に答える 2

24

イベントをスペースで分割します。

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

ただし、使用する必要がonありoffます。

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

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

.undelegate()メソッドは、.delegate()を使用してバインドされたイベントハンドラーを削除する方法です。jQuery 1.7以降、イベントハンドラーのアタッチと削除には、.on()メソッドと.off()メソッドが推奨されます。

于 2012-07-27T17:42:45.267 に答える
1

この特定のケースでは、との省略形.hover()を使用できます。mouseentermouseleave

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

.off()jQuery 1.7以降、イベントハンドラーを削除するための推奨される

于 2012-07-27T17:52:08.637 に答える