1

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

我无法弄清楚这个事件是在哪里引发的——在 jquery UI 源代码中对“slidechange”的文本搜索没有任何结果!

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

4

1 回答 1

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');
    }
});

slidechange另一种是使用 jQuery 的bindoron方法订阅事件。

$('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

于 2012-07-14T18:18:33.150 回答