Jea*_*eri 9 javascript jquery jquery-select2
我在我的网站上使用select2.如果下拉列表打开或关闭,我需要知道.我研究了文档,但我不知道如何做到这一点.例如,像这样的东西会很好:
if ($('select').select2('isOpen') === true) { ... }
Run Code Online (Sandbox Code Playgroud)
有什么建议?
use*_*505 18
在4.0版的select2,你可以听select2:opening,select2:open,select2:closing和select2:close对事件的select元素,例如:
$('select').on('select2:open', function (e) {
// select2 is opened, handle event
});
Run Code Online (Sandbox Code Playgroud)
Select2 4.0有一个isOpen方法.如果#mySelect是您的HTML select元素,那么:
$('#mySelect').data('select2').isOpen()
Run Code Online (Sandbox Code Playgroud)
...将返回true或false,具体取决于Select2的状态.
通过执行一些代码检查,它看起来就像select2-dropdown-open它添加的类.但是select2-open文档中有一个事件在下拉列表打开时触发.您可以使用它来设置变量,或执行操作(也select2-close).
你可以这样做:
$("#e11").on("select2-open", function() {
$(this).data("open", true);
});
$("#e11").on("select2-close", function() {
$(this).data("open", false);
});
if ($("#e11").data("open")) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
2018编辑
自2014年以来,事件的名称似乎已更新.请参阅下面的user1636505的答案.
从 Select2 4.0.6 开始,这已更新为以下内容
$("#foo").select2("isOpen")
Run Code Online (Sandbox Code Playgroud)
这将返回真/假
希望这可以帮助!