jQuery UI可选小部件内置了一个回调,stop
,我需要知道如何以编程方式触发此事件。
(措辞不佳)
我已经将一个事件监听器附加到jQuery UI Selectable Widget。如何以编程方式触发stop
事件?
$("table").selectable({
filter: "tr",
stop: function(){
//do stuff
}
});
// Various attempts at triggering the stop event
// one
$("table .ui-selected").click();
// two
$("table .ui-selected").select();
// three
$("table .ui-selected").trigger("click");
// shot in the dark 1
$("table").selectable('widget').trigger('stop');
// Shot in the dark 2
$("table").trigger('stop');
// really long shot in the dark
$("table").selectable('widget').call('stop');
// selectablestop event
$("#table").selectable('widget').trigger('selectablestop');
$("#table .ui-selected").trigger('selectablestop');
答案 0 :(得分:11)
如果您想在控件之外触发事件,只需拨打.trigger()
即可。这假设您在选项中使用.bind()
而不是匿名stop:function()
。
$("#selectable").selectable({});
$("#selectable").bind("selectablestop", function(event) {
$("body").append("<h1>did selectablestop</h1>");
});
$(":button").click(function() {
$('#selectable').trigger('selectablestop');
});
jsfiddle上的代码示例。
修改强>
另一种方法是检索stop:
选项值(这将是函数)
var s = $('#selectable').selectable( "option" , "stop");
s(); //call the function.
jsfiddle上的代码示例。
答案 1 :(得分:3)
我最终这样做了,发现于How to programmatically select selectables with jQuery UI?
$('#selectable').data("selectable")._mouseStop(null);
这将触发鼠标停止事件并在可选项上执行绑定停止功能。如果有办法以更优雅的方式触发停止,我很乐意看到。