首页 文章

jQuery Select2插件下拉列表没有响应鼠标点击

提问于
浏览
0

我使用带有ajax调用的select2 jQuery插件来检索用户输入的下拉列表中的项目 . 允许多个选择(标签)并允许自定义选择 . 当下拉列表出现时,如果我使用光标键转到我想要的项目并按Enter或tab,那么一切正常 . 触发 select2-selecting 回调,并使用选择文本更新输入 .

但是,如果我用鼠标单击某个选项,则不会触发 select2-selecting 回调,并且不会更新输入 . 唯一发生的事情是下拉菜单消失,没有别的 .

我在同一页面上有另一个select2输入,只允许一个选择而没有自定义选择 . 单击下拉项目即可正常工作 . 插件网站上的示例类似于我正在做的回应点击,所以这不是插件的一般错误 .

我知道select2实际上有一个隐藏的,完全半透明的容器div,只要select2输入有焦点,就会添加到DOM的屏幕大小 . select2输入位于'underlay'之上,其他所有内容都位于其下方 . 当select2输入失去焦点时,'underlay'消失 . 我认为问题可能是底层的z-index比输入更高,所以当我点击一个下拉项时,我实际上只是单击底衬并导致输入松散焦点 . 那么,输入(9999)确实具有比底衬(9998)更高的z指数 . 我只想排除这一点 .

1 回答

  • 0

    这一点javascript是罪魁祸首:

    input.on("select2-blur", function() { 
        $(this).select2('close');
    });
    

    我认为在一个阶段下拉菜单只是在我输入选项卡时才会消失,但如果我在下拉菜单可见时点击输入外部,它就会停留在那里 . 当输入失去焦点时,我有一个摆脱下拉的方法 . 这是问题的原因 . 奇怪的是,即使我现在已经删除它,当我在输入外部点击时,下拉列表会相应地消失,但我不知道为什么会这样 .

相关问题