Как открыть Chosen через JavaScript?
Мне нужно открыть Выбранное раскрывающееся меню через JavaScript, чтобы пользователям не приходилось нажимать на кнопку выбора, чтобы показать ее, как это можно сделать
Ответы
Ответ 1
Это решает проблему,
просто убедитесь, что chzn-select - это идентификатор вашего выбора.
chzn-drop останется открытым после того, как пользователи нажмут на опцию:
$('#chzn-select').change(function(event)
{
$('.chzn-drop').css('left', 0);
});
Ответ 2
Вы можете открыть выбранный блок выбора через JS, выполнив:
$('#<id-of-your-select>_chzn').trigger('mousedown');
где <id-of-your-select>
- это идентификатор вашего элемента <select>
.
Для примера: если ваш элемент <select>
похож на <select id="foo" ...>
, то приведенный выше код станет:
$('#foo_chzn').trigger('mousedown');
Ответ 3
Это очень странно, но я нахожу, что ответ использует таймаут
это как-то сначала на тайм-аут
возможно, потому что мой элемент клонирован
надежды для других
setTimeout(function(){ firstElement.trigger("chosen:open"); }, 100);
Ответ 4
вы можете добавить следующие два строчки в свой код, чтобы сохранить выбранный вами файл всегда открытым. Это сработало для меня.
list_start
- ваш идентификатор выбранного элемента.
("#list_start").trigger('chosen:open');
$('.chosen-drop').css('left', 0);
Ответ 5
Ответ на @tzvi является ценным в том случае, если вы пытаетесь вызвать выбранный так, чтобы он оставался открытым после выбора (IE: создание нескольких выборов за один раз). Позвольте мне немного расширить (обновлено для выбранного 1.0, кстати):
$('#selectbox').change(function() {
$('#selectbox_chosen .chosen-drop').css('left', '0');
});
$('html').click(function() {
$('#selectbox_chosen .chosen-drop').css('left', '');
});
$('#selectbox_chosen .chosen-drop').click(function(e) {
e.stopPropagation();
});
По сути, он заставляет выбранное выпадающее меню оставаться открытым, переопределяя некоторый css, который обычно находится на месте "активным" классом. Затем у нас есть несколько событий щелчка, которые отменит это, если вы щелкните в любом месте вне раскрывающегося списка. Работала отлично для меня.
Изменить:
Кстати, если вы действительно хотите запустить спуск через JS, используйте Chosen 1.0 API:
$('#selectbox').trigger('chosen:open')
В контексте исходного вопроса это позволит вам открыть окно или открыть окно после выбора. Тем не менее, он не будет открывать окно после выбора (без закрытия на мгновение).
Ответ 6
В обновленном Chosen jquery plugin работает отлично с stopPropagation.
$("#selectbox").trigger("chosen:open");
event.stopPropagation();