我有一个选择。我改变了选项内容,并调用触发器选择:更新,但选择不重建触发器。这是我的更新
<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");
所以转储^^
9条答案
按热度按时间pepwfjgg1#
我经常使用选择的插件,当然我遇到这个问题不止一次。
一般用
.trigger("chosen:updated")
就可以解决。但是就在一分钟前,这个方法不再起作用了,我感到很困惑,因为我在2个js文件中使用了相同的函数,比如a.js
和b.js
,它在a.js
中工作,但在b.js
中不工作。我不知道为什么...我差点失去理智!!!所以,我再次检查了API。我发现了
.chosen("destroy")
,启发了我!我认为这是终极解决方案:摧毁它,重建它。
我是不是太大声了?:p
6jygbczu2#
您的change函数调用元素“#select_shortcode_mask”的change。您的选择列表具有id:“#select_shortcode”
avkwfej43#
代码:
1rhkuytd4#
我的路是这样的……
或
yk9xbfzb5#
我知道这是一个老问题,但没有一个确切的解决方案为我工作,所以我结合@李开复和@杰米代码的工作!
非常感谢你们两个,也不要忘记触发('改变');在页面加载/文档准备,以及如果您的浏览器是依赖于另一个浏览器。
piv4azn76#
我以前
与使用
.trigger("chosen:updated");
时一样,这似乎无法解决问题。它看起来很粗糙,但工作得很好。qzlgjiam7#
在我的例子中,这是因为jQuery的双重包含(一次在头部,一次在页脚)。我删除了页脚中的一个,
.trigger('chosen:updated');
就像一个魅力!h4cxqtbf8#
它对我也不起作用。然后,我决定将初始化的控制分配给一个变量,并使用该变量重写顺序调用。这解决了问题。
brtdzjyr9#