jquery UIスライダーの「slidechange」イベントにアタッチするKnockoutのカスタムバインディングがあります。
私が把握できないのは、このイベントが発生する場所です。jquery UI ソース コード内で「slidechange」をテキスト検索しても、何も表示されません。
だから私はこれが慣習ベースのアプローチだと推測しています - 問題は、イベントのためのjquery UIの慣習は何ですか?
jquery UIスライダーの「slidechange」イベントにアタッチするKnockoutのカスタムバインディングがあります。
私が把握できないのは、このイベントが発生する場所です。jquery UI ソース コード内で「slidechange」をテキスト検索しても、何も表示されません。
だから私はこれが慣習ベースのアプローチだと推測しています - 問題は、イベントのためのjquery UIの慣習は何ですか?
このslidechange
イベントは、ユーザーがスライダーの位置を変更するたびに発生します。_change
コード内のメソッドを見ると、jquery.ui.slider.js
これはイベントをトリガーするコード行です。
this._trigger( "change", event, uiHash );
_trigger
widgetEventPrefix
は、最初のパラメーターの前にウィジェットの定義済み(この場合は)を付ける jQuery UI のウィジェット ファクトリのメソッドslide
です。したがって、そのコード行が呼び出されると、slidechange
イベントにバインドされたすべてのハンドラーがトリガーされます。
イベントにサブスクライブする方法は 2 つあります。function
1 つは、 を作成するときに inを渡すことslider
です。
$('my-selector').slider({
change: function() {
console.log('change');
}
});
もう 1 つは、slidechange
jQuery のbind
oron
メソッドを使用してイベントにサブスクライブすることです。
$('my-selector').on('slidechange', function() {
console.log('change');
});
この例では、これらのイベントが両方とも発生していることがわかります - http://jsfiddle.net/tj_vantoll/XUyKs/
jQuery UI の API サイトには、各ウィジェットが起動するすべてのイベントが文書化されているだけでなく、それらをサブスクライブする方法の例も示されています。たとえば、slidechange
イベントに関するドキュメントはhttp://jqueryui.com/demos/slider/#event-changeです。