Colorbox中的Select2下拉列表失败

时间:2017-09-01 20:20:18

标签: javascript jquery jquery-select2 colorbox

在Colorbox中使用Select2时,

Select2下拉选项无法显示。

我在我的应用程序的其他地方成功使用了Select2下拉列表,但这是我第一次尝试在colorbox弹出窗口中使用它。

我已尝试过此处列出的所有建议,但无济于事:https://github.com/jackmoore/colorbox/issues/474#issuecomment-25836400

我正在使用jquery v3.1.1,jquery-ui v1.12.1,jquery.Select2 v4.0.3和jquery.colorbox v1.4.29。我的浏览器是IE 11。

我正在打开这样的颜色框(我没有使用iframe,而模态是默认值“false”):

$.colorbox(
        {
            href: '/MyDomain/MyAction',
            open: true,
            scrolling: true,
            width: '60%',
            height: "60%",
            onComplete: function () {
                myJavascriptFunction();
            }
        });

运行onComplete的函数如下所示:

    myJavascriptFunction = function () {
    $('#SelectId option[value="0"]').prop('disabled', true);
    $("#SelectId ").select2({
        minimumResultsForSearch: Infinity,  //turns off the search box
        width: '400px',
        theme: "classic",
        dropdownAutoWidth: true,      
        templateResult: myMethod,  
        templateSelection: myOtherMethod
    }).on('select2:select', function (e) {
        yetAnotherMethod(e);
    });
}

我怀疑这是显示问题。 Select2方法调用似乎正在工作 - 它具有正确的宽度,正确显示所选选项,当我单击它时,templateResult和templateSuggestion方法都正确触发,并且它明显地经历了相同的轻微闪烁并且颜色发生变化当我在其他地方成功使用它们时,选择2个元素。当我单击Select2元素并在DOM Explorer中查看页面时,我可以看到select2 html以及选项。他们只是不可见。

从用户的角度来看,下拉列表无法删除并显示选择选项。

2 个答案:

答案 0 :(得分:1)

其实我没有正确地从https://github.com/jackmoore/colorbox/issues/474#issuecomment-25836400应用建议。

其中一条建议是更改z-index,如下所示:

.select2-close-mask {
z-index: 10000;
}
.select2-dropdown {
z-index: 10001;
}

我以为我已经尝试过了,但仔细观察后我的css被select2.css文件覆盖了,该文件在之后加载我应用了我的z-index,从而覆盖了我的内容试图做。

我甚至尝试通过jquery调用来应用z-index,例如:

$('.select2-dropdown').css('z-index',10005);

在调用Select2之前和之后,但无论出于何种原因,这都没有效果。

但加载 select2.css后加载我的样式更改修复了问题。

答案 1 :(得分:0)

使用下面的链接键入输入搜索select2:

https://select2.org/troubleshooting/common-problems

添加代码:

$('#mySelect2').select2({
    dropdownParent: $('#myModal')
});