1

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

往里jquery-ui-1.10.js看,我看到小部件工厂保存了一个元素的 jQuery 对象,它add使用选择器执行操作。虽然我认为它不会添加重复的 DOM 元素,但它更多的是下一个操作:_on这让我怀疑。

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

4

1 回答 1

2

不,你不应该那样做。在一个元素上多次调用_hoverable()mouseenter将在和mouseleave事件上注册额外的处理程序。

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

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

请注意,事件是在引擎盖下命名的,因此对_off()上面的调用只会取消绑定通过 注册的处理程序_on(),而不是您可能自己注册的其他处理程序。

于 2013-03-26T13:44:59.133 回答