Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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
通过javascript/jquery关闭select2下拉列表_Javascript_Jquery_Html_Twitter Bootstrap_Jquery Select2 - Fatal编程技术网

通过javascript/jquery关闭select2下拉列表

通过javascript/jquery关闭select2下拉列表,javascript,jquery,html,twitter-bootstrap,jquery-select2,Javascript,Jquery,Html,Twitter Bootstrap,Jquery Select2,你好,如何通过jquery或javascript正确关闭select2下拉列表 目前,我正在使用选择2 dropdown.toggle()将其关闭 但我注意到它只是隐藏列表,select2框仍然高亮显示 我想失去它的焦点或类似的东西,只是为了正确地关闭它,能够得出这样一个结果 顺便说一句,屏幕截图是黑色的,因为那些select2框处于引导模式下,每当我按enter键时都会出现 任何建议都将不胜感激!提前谢谢 select2-dropdown.blur(); 我想这就是你要找的。 您在我刚才创建

你好,如何通过jquery或javascript正确关闭select2下拉列表

目前,我正在使用
选择2 dropdown.toggle()
将其关闭

但我注意到它只是隐藏列表,select2框仍然高亮显示

我想失去它的焦点或类似的东西,只是为了正确地关闭它,能够得出这样一个结果

顺便说一句,屏幕截图是黑色的,因为那些select2框处于引导模式下,每当我按enter键时都会出现

任何建议都将不胜感激!提前谢谢

select2-dropdown.blur();
我想这就是你要找的。
您在我刚才创建的JSFIDLE中有一个示例。

这一个对我很有用
$(“#选择2放置掩码”)。单击()

我知道这是一个老问题,但为了使用API做到这一点,您只需执行以下操作:

选择2 API

 $("#select2-drop-mask").select2("close");
这个问题还提到了引导模式对话框,这往往是人们希望以编程方式关闭它的原因

对于任何人的信息,这是你如何做到的:

引导3

$('#myModal').on('hidden.bs.modal', function () {
  $('#select2-drop-mask').select2("close");
})
引导程序2

$('#myModal').on('hidden', function () {
   $('#select2-drop-mask').select2("close");
})

在v4.0中,其他答案都不适用于我。使用jQuery只选择掩码没有效果。我必须使用选择框本身的id:

$("#mySelectElement").select2("close")
这也有效,但可能不是首选:

$("#mySelectElement").select2().trigger("select2:close");

另外,对于引导程序3
隐藏.bs.modal
事件太晚,select2掩码将在动画期间停留一秒钟。
hide.bs.modal
对我们来说更加顺畅:

$('#modalYourModal').on('hide.bs.modal', function () {
    //close select2 in case its open
    $("#mySelectElement").select2("close");
});

select2下拉菜单-*mask*
对我不起作用,但下面的选项确实起作用

$('#select2-drop').select2('close');

关闭引导版本4及更高版本中的所有。尝试:

$('body').trigger('mousedown');

尝试->关注任何其他元素。谢谢@TusharGupta的建议,但我已经这样做了,我确实在模态上设置了文本框,以便在模态显示时聚焦。谢谢@mbecares的回答,这也是我的想法,我应该使用blur()函数,但它仍然不起作用。顺便说一下,我在使用文本框,因为你不能在“select”@stevemoretz上使用select2的ajax函数-有没有办法按类关闭它们?(不需要使用每个ID)@BeninCA可能通过使用$('.ID').each(function()){$(this).select2('close');}@stevemoretz-像这样尝试,但没有成功:$('.select2')。each(function(){$(this).select2('close');})改为发布了一个新问题:@BeninCA这就是为什么我说这些东西可能有点连线。特别是在不同的版本中,你会得到不同的结果。希望这个新问题能得到好的最新答案