在一个小部件中,我正在添加refresh
方法,我需要在重新应用所有挂钩之前清理所有内容。但是,我不确定在同一元素上多次调用this._hoverable(selector);
会产生什么后果。
查看jquery-ui-1.10.js
内部,我看到widget工具保留了元素的jQuery对象,并且它使用选择器执行add
操作。虽然我认为它不会添加重复的DOMelements,但更多的是下一个操作:_on
让我怀疑。
可以在同一个元素上多次调用_hoverable
吗?
答案 0 :(得分:2)
不,你不应该这样做。在元素上多次调用_hoverable()会在mouseenter
和mouseleave
事件中注册其他处理程序。
如果您不得不多次调用此方法,则必须事先取消绑定这些处理程序:
this._off(element, "mouseenter mouseleave");
this._hoverable(element);
请注意,事件是名称空间的,因此上面对_off()
的调用只会取消绑定通过_on()
注册的处理程序,而不是您自己注册的其他处理程序。