Jquery 使用toggle()时选择2非全宽或块
我有一些选择是Select2:s(使用插件Select2)。我想要的是,当第一个select2被更改并且它是一个特定的选项时,它将显示另一个select2。首先,当页面加载时,所有隐藏的select2都会使用jQuery的.toggle()隐藏。这是因为我使用bootstrap,并且在.form组中有每个select,我不想使用比需要更多的类。因此,我使用这个:Jquery 使用toggle()时选择2非全宽或块,jquery,twitter-bootstrap,select2,Jquery,Twitter Bootstrap,Select2,我有一些选择是Select2:s(使用插件Select2)。我想要的是,当第一个select2被更改并且它是一个特定的选项时,它将显示另一个select2。首先,当页面加载时,所有隐藏的select2都会使用jQuery的.toggle()隐藏。这是因为我使用bootstrap,并且在.form组中有每个select,我不想使用比需要更多的类。因此,我使用这个: $("#secondSelect").parents(".form-group").toggle(); 然后,我使用此代码显示下一个
$("#secondSelect").parents(".form-group").toggle();
然后,我使用此代码显示下一个select2:
$("#firstSelect").on("change", function(e) {
if ($(this).val() == "specificValue") {
$("#secondSelect").parents(".form-group").toggle();
} else {
$("#secondSelect").parents(".form-group").toggle();
}
});
但问题是第二个select2在.form组中没有正确显示。看起来是这样的:
它不是全宽的,与标签不一致
奇怪的是,当我使用chrome inspector并使用控制台键入.toggle()代码时,这不是问题。为什么不能正确显示
发生此问题的原因是,当您调用.select2时,元素被隐藏,因此没有设置宽度。在隐藏元素之前初始化,宽度将正确解析 将这些行移到js代码的底部
$("#program").parents(".form-group").toggle();
$("#year").parents(".form-group").toggle();
工作正常!谢谢