javascript - jQuery ('select:focus' ).blur() 在 Safari 和 Edge 中不工作

标签 javascript jquery css safari microsoft-edge

我们网站上有一个页面,我们在页面加载 5 秒后显示一个叠加表单。如果我们点击页面中的任何一个选择元素展开,在 5 秒的时间跨度内等待 Overlay 表单出现,那么展开的选择元素就会与 Overlay 表单重叠。设计真的不好看。

为了解决这个问题,我们添加了一行代码来触发任何聚焦的选择元素上的模糊事件,该事件会关闭展开的选择元素。这在 Chrome、Firefox 和 Internet Explorer 中运行良好,但在 Safari 和 Edge 中却不行。我试图通过放置几个 hack 来解决这个问题,但没有一个工作正常。任何帮助将不胜感激!

var showOverlayForm = function () {
    setTimeout(function () {
        // Do something after 5 seconds
        // ANIMATE the overlay form.
        $('select:focus').blur(); //close any open select drop down 
    }, 5000);
};

最佳答案

您会注意到,当用户选择下拉控件时,它会添加 class=focused

您可以尝试使用 .toggleClass() 并尝试删除该类可能会帮助您解决问题。

引用:

.toggleClass()

或者您可以尝试在屏幕上显示任何消息 5 秒或显示任何进度条以吸引用户 5 秒。

关于javascript - jQuery ('select:focus' ).blur() 在 Safari 和 Edge 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765735/

相关文章:

javascript - jQuery 等待动态图片加载

javascript - jQuery/JavaScript : replace string inside of html()?

html - 显示 : inline-block forces new line

css - 如何在两个跨度元素之间添加间距

javascript - 一定宽度的裁剪跨度

javascript - Webpack - 构建无依赖包

javascript - 当弹出窗口关闭时触发页面上的事件

javascript - Bootstrap 折叠菜单链接在移动设备上不起作用

javascript - Ionic 2 和 JSON 数据添加

javascript - 单击时使 div 元素居中