我有一個自定義的Knockout綁定,它附加到jQuery UI滑塊上的「slidechange」事件。如何以及在哪裏引發slidechange事件?
我無法弄清楚這個事件發生的地方 - jquery UI源代碼中的「slidechange」文本搜索沒有任何結果!
所以我猜這是一個基於約定的方法 - 問題是: jQuery UI的事件約定是什麼?
我有一個自定義的Knockout綁定,它附加到jQuery UI滑塊上的「slidechange」事件。如何以及在哪裏引發slidechange事件?
我無法弄清楚這個事件發生的地方 - jquery UI源代碼中的「slidechange」文本搜索沒有任何結果!
所以我猜這是一個基於約定的方法 - 問題是: jQuery UI的事件約定是什麼?
只要滑塊的位置由用戶更改,就會觸發slidechange
事件。在代碼中,如果您查看jquery.ui.slider.js
中的_change
方法,這是觸發事件的代碼行。
this._trigger("change", event, uiHash);
_trigger
是在jQuery的用戶界面的窗口小部件的工廠的方法,將與前綴的第一個參數的微件的定義widgetEventPrefix
(在這種情況下slide
)。因此,當調用該行代碼時,將觸發綁定到slidechange
事件的所有處理程序。
訂閱事件有兩種方法。一種是在創建slider
時通過function
。
$('my-selector').slider({
change: function() {
console.log('change');
}
});
另一種是訂閱使用jQuery的bind
或on
方法slidechange
事件。
$('my-selector').on('slidechange', function() {
console.log('change');
});
你可以看到這兩個事件在這個例子中被解僱 - http://jsfiddle.net/tj_vantoll/XUyKs/
jQuery用戶界面的API的網站記錄了每個插件火災以及提供的例子,你如何可以訂閱他們的所有事件。例如,以下是有關slidechange
事件的文檔 - http://jqueryui.com/demos/slider/#event-change。
widgetEventPrefix aha !! 我實際上很高興地使用滑塊與淘汰賽與我從谷歌獲得的自定義綁定 - 然而,我試圖建立自己的小部件與自定義事件 - 如果感興趣,看到我的其他問題),並試圖複製滑塊自定義綁定 - 它讓我困惑,我無法在源代碼中找到事件名稱 - 沒有想到尋找前綴。非常感謝! – BonyT 2012-07-14 19:17:34