$("#hi").keypress(function() {
$(".hi").html("Writing...");
});
$('#hi').keyup(function() {
$(".hi").delay(1000).queue(function() {
$(this).html("");
});
});
当我在文本框(#hi)中输入“Hello”时,键盘只适用于第一个字母,然后它不会消失。只能一次性使用键盘
$("#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/
这里的想法是,你设置超时删除“写作.. 。“文字键击一秒后。如果在该秒内创建了新的击键,则先前的超时被清除并且设置新的超时。这样,仅当用户停止键入超过一秒钟时才会删除文本。
我不明白为什么有帮助,但清除队列会产生你你期待
$('#hi').keyup(function() {
console.log("keyup");
$(".hi").delay(1000).queue(function() {
console.log("erase");
$(this).html("").clearQueue();
})
});
你不是通过调用next
从jQuery 1.4开始,被调用的函数通过另一个 函数作为第一个参数。当被调用时,这会自动地将下一个项目出队并保持队列移动。我们用它作为 如下:
$("#test").queue(function(next) {
// Do some stuff...
next();
});
你不是真的要排队1秒的每个按键的延迟? – Bergi 2012-07-11 23:34:12