2012-07-14 64 views
1

我有一個自定義的Knockout綁定,它附加到jQuery UI滑塊上的「slidechange」事件。如何以及在哪裏引發slidechange事件?

我無法弄清楚這個事件發生的地方 - jquery UI源代碼中的「slidechange」文本搜索沒有任何結果!

所以我猜這是一個基於約定的方法 - 問題是: jQuery UI的事件約定是什麼?

回答

3

只要滑塊的位置由用戶更改,就會觸發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的bindon方法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

+0

widgetEventPrefix aha !! 我實際上很高興地使用滑塊與淘汰賽與我從谷歌獲得的自定義綁定 - 然而,我試圖建立自己的小部件與自定義事件 - 如果感興趣,看到我的其他問題),並試圖複製滑塊自定義綁定 - 它讓我困惑,我無法在源代碼中找到事件名稱 - 沒有想到尋找前綴。非常感謝! – BonyT 2012-07-14 19:17:34

相關問題