jQuery UI MultiSelect Widget 1.8 несоответствие обработчика кликов

На моем сайте есть экземпляр виджета множественного выбора Эрика Хайнда.

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

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

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

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

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

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

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

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


person dpetters    schedule 23.12.2010    source источник
comment
:checkbox:eq(2) не устанавливает флажок со значением 2, он устанавливает третий флажок в массиве совпадающих элементов: api .jquery.com/eq-selector   -  person Andrew Whitaker    schedule 23.12.2010
comment
эта деталь не имеет значения и действительно была моей ошибкой, когда я быстро набрала вопрос   -  person dpetters    schedule 24.12.2010


Ответы (1)


В документации говорится:

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

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

$("select").multiselect("widget").find(":checkbox:eq(2)").each(function(){  
    this.click(); 
}); 
person codeulike    schedule 30.08.2011