jQuery Opera 焦点事件无效
jQuery Opera focus event not working
下面有一个搜索输入和一个复杂的下拉菜单 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()
});
我认为您的 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>
其实我找到了答案。
这个错误与 safari 和 chrome 中的相同。
为了解决这个问题,我添加了一个零超时。
奇怪的是它起作用了。
function checkSf() {
setTimeout(function(){
if ($('#search-field').val() != "" || $('#search-field').is(":focus")){
$('.search-dropdown').show();
}
},0);
}
下面有一个搜索输入和一个复杂的下拉菜单 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()
});
我认为您的 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>
其实我找到了答案。 这个错误与 safari 和 chrome 中的相同。 为了解决这个问题,我添加了一个零超时。
奇怪的是它起作用了。
function checkSf() {
setTimeout(function(){
if ($('#search-field').val() != "" || $('#search-field').is(":focus")){
$('.search-dropdown').show();
}
},0);
}