Плагин jQuery Chosen — как зафиксировать событие фокуса

Я использую этот плагин под названием Chosen, чтобы превратить мои простые старые элементы выбора в поиск, как вы типа сделка.

Проблема в том, что на моей существующей странице есть код, который срабатывает, когда элемент select попадает в фокус, и, похоже, он больше не срабатывает.

Здесь вы можете поэкспериментировать с выбранным кодом, если у вас есть идеи, которые вы, возможно, захотите протестировать. . (Он очень похож на мой собственный код, поэтому вы также можете увидеть, как он реализован.)


person Greg    schedule 20.09.2012    source источник


Ответы (2)


Проверьте это: http://jsfiddle.net/Fqpc3/

person Igor Shastin    schedule 20.09.2012
comment
Да, конечно. Когда вы применяете метод .chosen() к некоторому элементу ‹select›, он устанавливает случайный идентификатор для ‹select› и id = @id + '_chzn' для пользовательского ‹div›. Итак, мы выбираем первую букву ‹a› в этом div, которая становится заполнителем для текста. Извините, если не очень понятно, трудно объяснить. Легче заглянуть в дерево DOM, чтобы увидеть, как создается псевдовыборка. - person Igor Shastin; 20.09.2012
comment
Спасибо. Это имеет смысл. Как бы вы это сделали, если бы у меня было несколько выбранных виджетов? - person Greg; 20.09.2012
comment
Наличие нескольких виджетов не проблема, поскольку для каждого экземпляра создается случайный идентификатор. Проверьте это здесь: jsfiddle.net/Fqpc3/1 - person Igor Shastin; 20.09.2012

этот плагин, похоже, не имеет обратных вызовов, именно так я бы это сделал, вместо .focus() вы передаете то, что вам нужно сделать, в обратном вызове плагина, который эмулирует это событие, для разметки нет «фокуса» события который генерирует плагин.

person agbb    schedule 20.09.2012
comment
ммм разветвить плагин и добавить обратные вызовы? или, может быть, найти другой плагин, который сделает это за вас. или даже лучше, напишите свой собственный плагин jquery :) - person agbb; 20.09.2012