slidechange事件如何以及在哪里提出?

时间:2012-07-14 09:20:01

标签: jquery-ui

我有一个Knockout的自定义绑定,它附加到jquery UI滑块上的“slidechange”事件。

我无法弄清楚引发此事件的位置 - 在jquery UI源代码中搜索“slidechange”的文本没有任何结果!

所以我猜这是一种基于约定的方法 - 问题是: jquery UI对事件的约定是什么?

1 个答案:

答案 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的slidechangebind方法订阅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