Javascript keyup只工作一次
当我在文本框(#hi)中键入类似“Hello”的内容时,按键只对第一个字母有效,然后它不会消失。您可以使用超时而不是延迟:Javascript keyup只工作一次,javascript,jquery,Javascript,Jquery,当我在文本框(#hi)中键入类似“Hello”的内容时,按键只对第一个字母有效,然后它不会消失。您可以使用超时而不是延迟: $("#hi").keypress(function() { $(".hi").html("Writing..."); }); $('#hi').keyup(function() { $(".hi").delay(1000).queue(function() { $(this).html(""); }); }); 下面是一个工作示例
$("#hi").keypress(function() {
$(".hi").html("Writing...");
});
$('#hi').keyup(function() {
$(".hi").delay(1000).queue(function() {
$(this).html("");
});
});
下面是一个工作示例:
这里的想法是设置一个超时,以便在按键笔划一秒钟后删除“Writing…”文本。如果在该秒钟内进行了新的按键笔划,则清除先前的超时并设置新的超时。这样,只有当用户停止键入超过1秒时,文本才会被删除。我不太清楚为什么它会有帮助,但清除队列将产生您期望的结果
var timeout;
$("#hi").keypress(function() {
// Clear any previous timeout
clearTimeout(timeout);
// Apply the writing text
$(".hi").html("Writing...");
// Remove the text after one second if no more key is pressed until then
timeout = setTimeout(function () {
$(".hi").html("");
}, 1000);
});
您没有调用下一个
从jQuery1.4开始,调用的函数被传递给另一个函数
函数作为第一个参数。调用时,此选项将自动执行
将下一个项目出列并保持队列移动。我们把它当作
如下:
你真的不想在每次按键时排队等待1s的延迟吗?
$('#hi').keyup(function() {
console.log("keyup");
$(".hi").delay(1000).queue(function() {
console.log("erase");
$(this).html("").clearQueue();
})
});
$("#test").queue(function(next) {
// Do some stuff...
next();
});