Инициировать события jQuery UI: выбираемый пользовательский интерфейс - PullRequest
1 голос
/ 04 апреля 2011

EDIT:

в виджет, доступный для выбора jQuery UI, встроен обратный вызов, stop, мне нужно знать, как программно вызвать это событие.


(это было плохо сформулировано) Я подключил прослушиватель событий к jQuery UI Выбираемый виджет . Как программно вызвать событие 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 ]

11 голосов
/ 04 апреля 2011

Если вы хотите вызвать событие вне элемента управления, вы можете просто позвонить .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 .

3 голосов
/ 28 сентября 2011

Я закончил тем, что сделал это, найденный на Как программно выбрать селектируемые объекты с помощью jQuery UI?

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

Это вызовет событие остановки мыши и выполнит функцию останова с привязкой напо выбору.Если есть способ вызвать остановку более элегантным способом, я бы с удовольствием посмотрел.

...