触发jQuery UI事件:ui-selectable

时间:2011-04-04 16:42:16

标签: jquery-ui jquery jquery-ui-selectable

编辑:

jQuery UI可选小部件内置了一个回调,stop,我需要知道如何以编程方式触发此事件。


(措辞不佳) 我已经将一个事件监听器附加到jQuery UI Selectable Widget。如何以编程方式触发stop事件?


Ex可选:

$("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');

2 个答案:

答案 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);

这将触发鼠标停止事件并在可选项上执行绑定停止功能。如果有办法以更优雅的方式触发停止,我很乐意看到。