jQuery UI MultiSelect Widget 1.8 расхождение в обработчике кликов - PullRequest
0 голосов
/ 23 декабря 2010

У меня на сайте есть экземпляр виджета Эрика Хайна .

В обработчике кликов у меня есть предупреждение о том, сколько флажков выбрано-

alert($(this).multiselect("getChecked").length

Предположим, что виджет запускается без флажков. Если я отмечу один, предупреждение выдаст мне «1», что означает, что флажок уже установлен, когда обработчик щелчка ударил.

Теперь скажите, что вместо явного нажатия я делаю то, что предлагает Эрик Хиндс, чтобы имитировать щелчок -

$("select").multiselect("widget").find(":checkbox:eq(2)").trigger("click");

(здесь я ставлю флажок со значением 2 только для демонстрационных целей.) Предупреждение дает мне 0.

Мне не удалось выяснить, почему существует это несоответствие и причины его возникновения, когда я пытаюсь ограничить количество флажков, которые может выбрать пользователь. Они могут ставить флажки не только щелкая их, но и щелкая мышью за пределами виджета, поэтому мне приходится имитировать щелчки на настоящих флажках.

Любая помощь приветствуется, спасибо!

1 Ответ

1 голос
/ 30 августа 2011

Документация гласит:

... должно быть использовано собственное событие щелчка (триггер ('щелчок') не будет работать) из-за этой ошибки в ядре jQuery...

так что-то вроде этого я думаю:

$("select").multiselect("widget").find(":checkbox:eq(2)").each(function(){  
    this.click(); 
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...