1

jQuery UIウィジェットを開発するときは、destroyをオーバーライドしてsuper.destroyを呼び出すか、ネストされたウィジェットでdestroyする必要があります。しかし、いつ破壊が呼び出されるべきですか?jQueryUIフレームワークによって自動的に魔法のように呼び出されることはありますか?それとも、クライアントプログラマーが(私の素晴らしいウィジェットを使用して)呼び出す必要がありますか?

たとえば、アコーディオン()を表示するライトボックス(fancybox)があるとします。アコーディオンがfancyboxのonStartコールバックで作成されているとしましょう-ライトボックスが表示されようとしています。'on-lightbox-close'コールバックでaccordion('destroy')を呼び出す必要がありますか?不要のようです...

4

1 に答える 1

4

destroyウィジェットを破棄したいときに呼び出されます。

.remove()また、「ウィジェット化」されたDOMの要素をUIから呼び出すこともできます。

特定のユースケースについては、状況によって異なります。そのページロードの存続期間の将来の任意の時点で、同じライトボックスインスタンスが再度開かれますか?その場合、ライトボックスの次の表示には「再ウィジェット化」が必要になるため、破棄するとオーバーヘッドが追加されるだけです。そうでない場合、破壊しないと、理由もなくメモリが消費されたままになります。(これは、ライトボックスを閉じても要素がDOMから削除されないことを前提としています)

于 2011-08-17T23:04:23.473 に答える