jquery UIウィジェットで_initと_createを決定する方法は?
-
14-10-2019 - |
質問
私は間の違いを理解していると思います _create
と _init
ウィジェット定義では(たとえば、参照してください この質問)、しかし、私はまだ確信がありません 目的 区別のために。どのようなセットアップタスクが入ります _create()
またはで _init()
?ウィジェットの著者が間違ったものを選択した場合、何が問題になりますか?
解決
から:
- http://forum.jquery.com/topic/jquery-ui-1-8-use of-init
- http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/
- http://jqueryui.com/demos/dialog/
使用する
_create
マークアップを構築および挿入するには、イベントをバインドするなど。デフォルトの機能をに配置します_init()
。たとえば、ダイアログウィジェットは、autoOpen
ウィジェットが初期化されたら、ダイアログを開くかどうかを示すパラメーター。のための完璧な場所_init()
!
また:
ウィジェット工場が自動的に発射します
_create()
と_init()
その順序での初期化中の方法。一見すると、努力は複製されているように見えますが、2つの間に視力の違いがあります。ウィジェット工場は同じ要素の複数のインスタンス化から保護するため、_create()
ウィジェットインスタンスごとに最大1回と呼ばれますが、_init()
議論なしでウィジェットが呼び出されるたびに呼び出されます...
著者が使用する場合 _init()
いつ _create()
コード化されているはずです、結果はコードが _init()
ウィジェットインスタンス化ごとに1回実行されます。
他のヒント
短い答え ここで:_create()は、$ xx.your-plugin(オプション)のように、jquery-uiプラグインを初めて実行するときに実行されます。 _init()が実行されます 初めて初めて コードが$ xx.your-plugin(オプション)に実行されたとき。
jquery-ui.custom.jsにはこのようなコードがあるため:
var instance = $.data( this, fullName );
if ( instance ) {
instance.option( options || {} )._init();
}
だから、もしあなたの場合 チャートを描きます jquery-uiプラグインを使用して、それが引き出された後、あなたは 新しいデータを使用して更新します, 、チャートを更新するには、_init()でこれを行う必要があります。何かを表示して完全に更新しない場合、_create()はお客様のニーズを満たします。