You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Select2的open事件中调用select2('open')打开另一Select2失效怎么办

Select2 同时打开两个下拉框的解决方法

根因说明

  • Select2 内置了默认逻辑:任意一个下拉框触发打开操作时,会自动关闭所有其他已经打开的Select2实例,避免多个下拉框重叠冲突
  • select2:open 事件属于打开流程的同步回调,此时关闭其他实例的逻辑还未执行完成,直接在回调中调用第二个下拉框的open方法,会被刚触发的全局关闭逻辑直接关掉,所以看不到效果
  • 按钮点击触发的逻辑和Select2的打开流程没有耦合,不会触发该全局关闭逻辑,因此可以正常执行

修复方案

用setTimeout将打开第二个下拉框的逻辑异步延迟执行,等第一个下拉框的打开流程、全局关闭其他实例的逻辑全部执行完成后再触发,修改后的JS代码如下:

$(".js-example-events").select2();

$('.js-example-events').on("select2:open", function () {
    // 延迟执行避开Select2的全局关闭逻辑,大部分场景设为0也可生效,可根据实际情况调整毫秒数
    setTimeout(function() {
        $("#s1").select2("open");
    }, 10);
});

function test(){
    $("#s1").select2("open");
}

内容的提问来源于stack exchange,提问作者rahul.m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:54:02