【问题标题】:Blur Select2 input after close关闭后模糊 Select2 输入
【发布时间】:2014-01-16 08:53:53
【问题描述】:

我希望 select2 元素在触发 select2-close 事件时失去焦点,我目前尝试的是:

.on("select2-close", function (e) {
    var $focused = $(':focus');
    $focused.blur();
});

还有一些变体来获得焦点元素,例如document.activeElement、$(e.target),这些都不起作用。

JSFiddle

【问题讨论】:

标签: javascript jquery jquery-select2


【解决方案1】:

您需要从包含分隔符中删除 .select2-container-active 类:

.on("select2-close", function () {
    setTimeout(function() {
        $('.select2-container-active').removeClass('select2-container-active');
        $(':focus').blur();
    }, 1);
});

我在这里使用了setTimeout 作为一种骇人听闻的方式,以确保在插件本身完成关闭后触发。

JSFiddle demo.

【讨论】:

  • 您确定您的代码从 select2 元素中移除了焦点吗?只需在通话后尝试记录重点元素。非常简单的测试。
  • @akoskm 对不起,我删除了你的部分代码。我重新添加了$(':focus').blur(); 并更新了 JSFiddle。
  • 好的,我意识到您的小提琴与您的答案不同,没有setTimeout 它将无法工作。请编辑您的答案,我会接受。在这种情况下,“setTimeout”至关重要。
  • @akoskm 对不起,我也忘记了!缓慢的早晨......!
猜你喜欢
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 2018-10-01
  • 2017-04-01
相关资源
最近更新 更多