javascript - jQuery Opera 焦点事件不起作用

标签 javascript jquery html css opera

下面有一个搜索输入和一个复杂的下拉div。 当焦点位于输入上时,脚本会显示 div。

除 Opera 外,它在任何地方都可以正常工作。 在 Opera 中,当我聚焦输入时,没有任何反应。但是,如果我点击另一个桌面应用程序,比如查看我的邮件,然后返回网站,网站上的下拉菜单会突然出现。

有什么方法可以解决这个问题?

function checkSf() {
    if ($('#search-field').val() != "" || $('#search-field').is(":focus")){
        $('.search-dropdown').show();
    } 
}
$('#search-field').keyup(function(){
    checkSf()
});

$('#search-field').on('focus', function(){
    checkSf()
});

最佳答案

其实我找到了答案。 这个错误与 safari 和 chrome 中的相同。 为了解决这个问题,我添加了一个零超时。

奇怪的是它起作用了。

function checkSf() {
    setTimeout(function(){
        if ($('#search-field').val() != "" || $('#search-field').is(":focus")){
            $('.search-dropdown').show();
        } 
    },0);

}

关于javascript - jQuery Opera 焦点事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440930/

相关文章:

javascript - 如何在带有 Handlebars 的 json 文件中获取对象键

javascript - 如何区分类中的每个复选框元素

html - CSS - 检测元素是否被抓取/拖动/移动

javascript - 如何在单击 <a> 标签时关闭汉堡包导航?

javascript - jquery制作放大缩小文字的按钮

javascript - 修改嵌套状态无法更新

javascript - 为什么 CURL 的 PUT 在上传 payload 之前验证失败,而 XHR PUT 只是在之后?

javascript - 有什么方法可以让某些 javascript(例如 Bookmarklet)在页面加载时自动运行?

JqueryMobile Listview 删除旧值

javascript - 取消 slider 无法与按钮一起使用