jQuery UI Widget工厂多次调用_hoverable(等)

时间:2013-03-26 13:30:36

标签: jquery-ui

在一个小部件中,我正在添加refresh方法,我需要在重新应用所有挂钩之前清理所有内容。但是,我不确定在同一元素上多次调用this._hoverable(selector);会产生什么后果。

查看jquery-ui-1.10.js内部,我看到widget工具保留了元素的jQuery对象,并且它使用选择器执行add操作。虽然我认为它不会添加重复的DOMelements,但更多的是下一个操作:_on让我怀疑。

可以在同一个元素上多次调用_hoverable吗?

1 个答案:

答案 0 :(得分:2)

不,你不应该这样做。在元素上多次调用_hoverable()会在mouseentermouseleave事件中注册其他处理程序。

如果您不得不多次调用此方法,则必须事先取消绑定这些处理程序:

this._off(element, "mouseenter mouseleave");
this._hoverable(element);

请注意,事件是名称空间的,因此上面对_off()的调用只会取消绑定通过_on()注册的处理程序,而不是您自己注册的其他处理程序。