Как я могу заставить выбранный плагин jQuery свернуть поле выбора?

Возможно, это не проблема с выбранным плагином, но именно здесь я сталкиваюсь с проблемой. Выбранный плагин отлично рисует поле выбора. Проблема заключается в том, что поле выбора, если оно отображается полностью, и щелчок по элементу в поле выбора не сворачивает выделение. Под полным отображением я подразумеваю, что когда отображается раздел, выбор выглядит так, как если бы он был нажат, и все параметры видны и не исчезнут.

Кто-нибудь знает, что может быть причиной этого?

Этот шаблон загружается после загрузки страницы с помощью .on().

В нижней части загруженного шаблона есть блок, который вызывает функцию selected() для элемента.

<script>
    (function() {
        $('.chzn-select').chosen();
    )()
</script>

В html поле выбора определяется как:

 <select id="product_id" class="chzn-select"  onchange="update_values()">

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


person jmcneirney    schedule 15.07.2013    source источник
comment
Если вы откроете свою веб-консоль и вызовете $(".chzn-select").trigger("liszt:updated"), это что-нибудь изменит?   -  person damian    schedule 15.07.2013
comment
Нет. Он просто напечатал Object[ ].   -  person jmcneirney    schedule 15.07.2013


Ответы (2)


не используйте встроенное событие onchange. если вы уже используете jquery, вы также должны использовать его, чтобы добавить свое событие изменения.

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

попробуйте сделать что-то подобное...

$(".chzn-select").chosen().change(function() {
    alert('change happened');
    //to close the chosen (not pretty but will work. note this will close all open chosens)
    $('.chzn-container-active').trigger('click')
});
person George    schedule 15.07.2013
comment
Ну вот и выстрелил. Я не уверен, как свернуть раскрывающийся список. - person jmcneirney; 15.07.2013
comment
не красиво, но выполняет свою работу... $('.chzn-container-active').trigger('click') - person George; 15.07.2013
comment
Это ничего не сделало для меня. Единственный способ, которым я смог получить список опций, чтобы уйти, - это скрыть() его. Тогда я не могу щелкнуть поле выбора и установить для него значение show(). Мне интересно, связано ли это с вызовом selected() после загрузки страницы. Щелчок по выбору делает то, что он должен делать, когда я нажимаю один из вариантов. Это просто не исчезнет, ​​пока я не вызову hide(). Выпадающий список охватывает другие элементы формы, так что это проблема. - person jmcneirney; 16.07.2013
comment
Я только что провел небольшой тест, и он отлично работает. Скорее всего проблема где-то в html или JS на странице. Спасибо за вашу помощь. - person jmcneirney; 16.07.2013

У меня была та же проблема, когда параметры расширялись вниз по странице и не исчезали после того, как я их выбирал. После создания самой простой из возможных html-страниц и все еще имеющей проблему, я понял, что не связался с selected.css, который включен в zip-файл:

<link rel="stylesheet" type="text/css" href="/scripts/chosen/chosen.css">

Как только я скопировал selected.css и все остальные файлы из zip-файла в свою папку «scripts/chosen» и добавил указанную выше ссылку в selected.css, selected заработал точно так же, как в демо.

person Lon Prosser    schedule 14.10.2016