开发者

Trigger jQuery UI events: ui-selectable

EDIT:

the jQuery UI selectable widget has a callback built into it, stop, I need to know how to trigger this event programmatically.


(this was poorly worded) I've attached an event listener to the jQuery UI Selectable Widget. How can I programmatically t开发者_C百科rigger the stop event?


Ex Selectable:

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

Further Attempts

// selectablestop event

$("#table").selectable('widget').trigger('selectablestop');

$("#table .ui-selected").trigger('selectablestop');


If you want to trigger the event outside of the control you can simply call .trigger(). This assumes you are using the .bind() and not the anonymous stop:function() in options.

$("#selectable").selectable({});
$("#selectable").bind("selectablestop", function(event) {
    $("body").append("<h1>did selectablestop</h1>");
});
$(":button").click(function() {
    $('#selectable').trigger('selectablestop');
});

Code example on jsfiddle.

Edit

Another way would be to retrieve the stop: option value (which would be the function)

var s = $('#selectable').selectable( "option" , "stop"); 
s(); //call the function.

Code example on jsfiddle.


I ended up doing this, found at How to programmatically select selectables with jQuery UI?

 $('#selectable').data("selectable")._mouseStop(null);

This will trigger the mouse stop event and execute the binded stop function on the selectable. If there's a way to trigger the stop in a more elegant way, I would love to see.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜