下方有一个搜索输入和一个复杂的下拉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()
});

最佳答案

其实我找到了答案。
此错误与野生动物园和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/

10-11 22:20
查看更多