键控只能工作一次

keyup only works one time

本文关键字:一次 工作      更新时间:2023-09-26
$("#hi").keypress(function() {
    $(".hi").html("Writing...");
});
$('#hi').keyup(function() {
    $(".hi").delay(1000).queue(function() {
        $(this).html("");
    });
});

当我在文本框(#hi(中键入"Hello"时,键控仅适用于第一个字母,然后它不会消失。

您可以使用超时而不是延迟:

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);
});​

下面是一个工作示例:http://jsfiddle.net/tF7DH/1/

这里的想法是设置超时以删除"写入..."击键后一秒的文本。如果在该秒内进行了新的击键,则会清除以前的超时并设置新的超时。这样,仅当用户停止键入超过一秒钟时,才会删除文本。

不调用next会阻塞队列

从jQuery 1.4开始,调用的函数被传递另一个 函数作为第一个参数。调用时,这会自动 取消下一个项目的排队并保持队列移动。我们将其用作 遵循:

$("#test").queue(function(next) {
    // Do some stuff...
    next();
});