jQuery Opera焦点事件无法正常工作

时间:2015-02-10 20:15:39

标签: 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()
});

2 个答案:

答案 0 :(得分:0)

Actualy我找到了答案。 此错误与safari和chrome中的错误相同。 为了解决这个问题,我添加了零暂停。

奇怪的是它奏效了。

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

}

答案 1 :(得分:-1)

我认为你的Javascript和JQuery看起来还不错。你的HTML设置是这样的吗?如果是这样,这对我有用。

<input type="text" id="search-field" />

<select id="ddlSearch" class="search-dropdown" style="display: none;">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
</select>