我有一个用于 Knockout 的自定义绑定,它附加到 jquery UI 滑块上的“slidechange”事件。
我无法弄清楚这个事件是在哪里引发的——在 jquery UI 源代码中对“slidechange”的文本搜索没有任何结果!
所以我猜这是一种基于约定的方法 - 问题是:jquery UI 的事件约定是什么?
我有一个用于 Knockout 的自定义绑定,它附加到 jquery UI 滑块上的“slidechange”事件。
我无法弄清楚这个事件是在哪里引发的——在 jquery UI 源代码中对“slidechange”的文本搜索没有任何结果!
所以我猜这是一种基于约定的方法 - 问题是:jquery UI 的事件约定是什么?
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');
}
});
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。