jQueryウィジェットはDOMオブジェクトに手軽にリンクされたjQueryオブジェクトだと思っています(たとえば、状態を保存したり、イベントを処理することができます)が、インスタンスモデルを理解する上で問題があります。私はそのようなオブジェクトを持っています。jQueryウィジェットではなく、私はそれらがどれだと思いましたか?
var xs_widgets = {
jQuery : $,
options: { },
_create: function() {
this.make_sortable() ;
},
_init: function() { alert ('init') ; }
make_sortable: function() { alert ('make-sortable') ; }
}
これをjQueryにバインドします。
jQuery.widget("ui.xs_widgets", xs_widgets);
次に、いくつかのDOM要素をウィジェットにバインドしようとします。
$('li.widget').xs_widgets();
ここが問題です。私はと答えましたそれぞれ<li class="widget">
にはjQueryオブジェクトが添付されていますが、私が収集できるものは関係なく、グローバルなxs_widgetオブジェクトがあり、上記のクエリからjQueryオブジェクトを取得しています。ウィジェットの要点は、インスタンスを扱う際のオーバーヘッドを避けることだと思いましたか?上記のコードは、例えば2つの<li>
要素を含むHTMLに対して実行されます。
make-sortable
init
make-sortable
init
私は期待していました。
make-sortable
init
init
ああ、助けてください!私はチュートリアルや記事を読んでいますが、どこかで何か重要なものが欠けているようです。
おかげで、ええ、いくつかのより多くのテストの後に、私が得たようですこれらのクラスの中で匿名関数がどのように動作するかと混同しています。イベントが適切に機能するように、匿名関数内の自己ウィジェットオブジェクトへの参照を保持する仕組みがあると思いますか?それは良い参照を得るためにそれらの内部でクエリを行う必要があるようですか?それとも私が逃した他の魔法がありますか? – AlexanderJohannesen