我有一个Knockout的自定义绑定,它附加到jquery UI滑块上的“slidechange”事件。
我无法弄清楚引发此事件的位置 - 在jquery UI源代码中搜索“slidechange”的文本没有任何结果!
所以我猜这是一种基于约定的方法 - 问题是: jquery UI对事件的约定是什么?
答案 0 :(得分:3)
只要用户更改了滑块的位置,就会触发slidechange
事件。在代码中,如果您查看_change
中的jquery.ui.slider.js
方法,则这是触发事件的代码行。
this._trigger( "change", event, uiHash );
_trigger
是jQuery UI的小部件工厂中的一个方法,它将为第一个参数添加小部件定义的widgetEventPrefix
(在本例中为slide
)。因此,当调用该行代码时,将触发绑定到slidechange
事件的所有处理程序。
订阅活动有两种方法。一种是在创建function
时传入slider
。
$('my-selector').slider({
change: function() {
console.log('change');
}
});
另一种是使用jQuery的slidechange
或bind
方法订阅on
事件。
$('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。