Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用toggle()时选择2非全宽或块_Jquery_Twitter Bootstrap_Select2 - Fatal编程技术网

Jquery 使用toggle()时选择2非全宽或块

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(); 然后,我使用此代码显示下一个

我有一些选择是Select2:s(使用插件Select2)。我想要的是,当第一个select2被更改并且它是一个特定的选项时,它将显示另一个select2。首先,当页面加载时,所有隐藏的select2都会使用jQuery的.toggle()隐藏。这是因为我使用bootstrap,并且在.form组中有每个select,我不想使用比需要更多的类。因此,我使用这个:

$("#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();

工作正常!谢谢