我正在使用我网站上的Chosen插件,到目前为止,它一直运行良好。但是,我处于这样一种情况:我动态添加了一个选择并激活了这些选择上的Chosen插件。这些选择的选择正在生产中,但我无法弄清楚如何将click事件绑定到元素。 Chosen提供了这个($("#form_field").chosen().change( … );
)作为在change事件上做某事的方法,但是,由于我的select是动态添加的,所以这不起作用。
我也尝试了$('#el').change
和$(document).on("change", "#el", function())
,但没有取得任何成功。
答案 0 :(得分:3)
原始答案: 来自http://harvesthq.github.io/chosen/#change-update-events
"如果您需要更新选择字段中的选项并希望选择接收更改,则需要触发选择的选项:已更新"在球场上的事件。 Chosen将根据更新的内容重新构建自己。"
$("#form_field").trigger("chosen:updated");
...所以在添加新元素后调用它。
编辑: 在审核了这个http://jsfiddle.net/amindunited/reh5p0tg/3/之后 我可以看到问题是第二个选择的change()侦听器在该选择被添加到页面之前被附加。 我已经更新了小提琴代码:
答案 1 :(得分:1)
使其工作的另一种方法是将所有内容填充到init函数中:
function init_new_content(){
$("#form_field").chosen();
}
init_new_content();
然后在您知道自己做出更改时(例如在ajax上)调用它
$.ajax({...},
success: function( data){
init_new_content();
},
...