Выбранное обновление не работает
У меня есть выпадающий список. Я изменил содержимое вариантов и выбрал триггер вызова: обновлено, но 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");
Итак, дамп ^^
Ответы
Ответ 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);