Подтвердить что ты не робот

Выбранное обновление не работает

У меня есть выпадающий список. Я изменил содержимое вариантов и выбрал триггер вызова: обновлено, но Chosen не перестраивает раскрывающийся список. Это мой обновленный

<select name="shortcode" style="width: 150px; display: none;" class="chosen_select chzn-done" id="select_shortcode">
   <option value=""></option> 
   <option value="7183">7183</option>
   <option value="7983">7983</option>
</select>

И это выпадающее меню "Избранные" (он должен быть перестроен и удален два последних <li>)

<ul class="chzn-results">
   <li id="select_shortcode_chzn_o_1" class="active-result" style="">7183</li>
   <li id="select_shortcode_chzn_o_2" class="active-result" style="">7983</li>
   <li id="select_shortcode_chzn_o_3" class="active-result" style="">8208</li>
   <li id="select_shortcode_chzn_o_4" class="active-result" style="">8308</li>
</ul>

Это мой код jQuery:

$('#select_shortcode_mask').change(function(){
    var shortcode_mask = $('#select_shortcode_mask').val();
    $('#select_shortcode').empty();
    var shortcode = {"7X83":["7183","7983"],"8x08":["8208","8308"]};
    $('#select_shortcode').append("<option value=''></option>");
    if(jQuery.isArray(shortcode[shortcode_mask])){
            $.each( shortcode[shortcode_mask], function( subkey, subvalue ) {
                $('#select_shortcode').append("<option value='"+subvalue+"'>"+subvalue+"</option>");
            })
    } else {
        var full_shortcode = ["7183","7983","8208","8308"];
        if(jQuery.isArray(full_shortcode)){
            $.each(full_shortcode, function( subkey, subvalue ) {
                $('#select_shortcode').append("<option value='"+subvalue+"'>"+subvalue+"</option>");
            })
        }
    }
    $("#select_shortcode").trigger("chosen:updated");
});

РЕШИТЬ: Я использую более старую версию, поэтому она должна:

$("#select_shortcode").trigger("liszt:updated");

Итак, дамп ^^

4b9b3361

Ответ 1

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

обычно использовать .trigger("chosen:updated") можно решить. Но всего минуту назад этот метод больше не работает, я чувствую себя настолько запутанным, потому что я использую одну и ту же функцию в файле 2 js, скажем, a.js и b.js, он работает в a.js, но не работает в b.js. Я не могу понять, почему... Я почти теряю рассудок!

Итак, я проверяю api again.I нашел .chosen("destroy"), вдохновил меня!

И я думаю, что это Ultimate Solution: уничтожьте его и перестройте.

$('.chosen').chosen("destroy").chosen();

Я слишком громко?: Р

Ответ 2

Ваша функция изменения вызывает изменение для элемента "#select_shortcode_mask". В вашем списке выбора есть id: "#select_shortcode"

Ответ 3

Я использовал

$("select").chosen({ width: "100%" });//chosen hack

Как и при использовании .trigger("chosen:updated");, это не помогло решить проблему. Он выглядит взломанным, но работает хорошо.

Ответ 4

Код:

$('#test')
  .val(1)
  .trigger('liszt:update')
  .removeClass('chzn-done');

$('#test_chzn').remove();


$("#test").chosen({
  width: "220px",
  no_results_text: "test"
});

Ответ 5

Мой путь - это...

$timeout(function() {
  $('#CampSrchId').trigger('chosen:updated');
}, 1000);

ИЛИ

window.setInterval(function() {
  $('#CampSrchId').trigger('chosen:updated');
}, 1000);