javascript - 在 div 关闭 .length==0 之前需要退格两次,尽管在手机上退格两次不会隐藏它

标签 javascript jquery

我必须退格两次:

if (str.length==0) { } 

去上类。 虽然在手机上,当我退格两次时​​,它不会隐藏 div。我想知道如何解决这个问题。当字符串长度为 0 时,代码看起来相当简单,例如空,它应该隐藏 div,但事实并非如此?

function showResult(str) {
if (str.length==0) {
$("#livesearcher").hide();
} else {
$("#livesearcher").show();
$("#livesearcher").load('inc/search_res.php?q='+str);
}
}

这就是我调用该函数的方式:

<input type='text' name='q' value='' maxlength='255' onkeydown='showResult(this.value)' id='searcherin' autocomplete='off'>

最佳答案

onkeydown 在文本框的值更新之前被触发,因此它仍然具有之前的内容。

改用onkeyup

但是应该注意的是,许多移动浏览器不会在输入时触发 onkey* 事件,您应该使用 onchange 来代替。

关于javascript - 在 div 关闭 .length==0 之前需要退格两次,尽管在手机上退格两次不会隐藏它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866430/

相关文章:

javascript - 从 html 到 Javascript 获取 ID 数组

javascript - 检查 componentWillReceiveProps 中更改了哪些 Prop

javascript - 如何使用 jquery 查找表单

jQuery 选择器 - 什么更快?

javascript - Kendo UI 从其编辑器中的小部件访问详细网格实例

JavaScript:用浏览器打开窗口

javascript - 如何将 UUID 类型转换为 ULID 类型?

javascript - 根据鼠标点击位置定位 div

javascript - wordpress主题中的jquery冲突

php - Javascript/jQuery 检查 PHP 输出是否为 json - 如何?