1

ウィジェットでrefreshメソッドを追加しているので、すべてのフックを再適用する前にすべてをクリーンアップする必要があります。this._hoverable(selector);ただし、同じ要素を複数回呼び出すとどうなるかわかりません。

内部jquery-ui-1.10.jsを見ると、ウィジェットファクトリが要素のjQueryオブジェクトを保持してaddおり、セレクターを使用して操作を実行していることがわかります。重複するDOMelementsは追加されないと思いますが、それは次の操作です。_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 に答える