Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当内容在500毫秒内未更改时才执行操作_Javascript_Jquery_Delay - Fatal编程技术网

Javascript 仅当内容在500毫秒内未更改时才执行操作

Javascript 仅当内容在500毫秒内未更改时才执行操作,javascript,jquery,delay,Javascript,Jquery,Delay,目前我有 $('document').ready(function(){ $('input').keyUp(function(){ $('#output').text($(this).text()); }); }); 我想做的是 注册按键时,等待500毫秒, 如果在500毫秒内再次按下某个键, 等一下,离按键500毫秒 一旦500毫秒过去, 运行$('#output').text($(this.text()) 如何管理超时?您可以设置并清除计时器,如下所示: $(functio

目前我有

$('document').ready(function(){
  $('input').keyUp(function(){
    $('#output').text($(this).text());
  });
});
我想做的是

注册按键时,等待500毫秒, 如果在500毫秒内再次按下某个键, 等一下,离按键500毫秒

一旦500毫秒过去, 运行
$('#output').text($(this.text())


如何管理超时?

您可以设置并清除计时器,如下所示:

$(function(){
  $('input').keyup(function(){
    clearTimeout($.data(this, 'timer'));
    var input = this;
    $.data(this, 'timer', setTimeout(function() {
      $('#output').text($(input).text());
    }, 500));
  });
});
这是在
keyup
上执行的,它在运行
$(“#输出”).text($(input).text())
之前设置500毫秒的延迟,如果在此之前按下另一个键,它将取消计时器并启动另一个…因此它将在500毫秒空闲之前不会运行。此外,通过使用将计时器存储在特定元素上,此通用解决方案适用于页面上任意数量的元素



另外,你的
$('document').ready()
应该是
$(document)。ready()
或者更短的
$(function(){
,就像我上面提到的,
“document”
(引号中)不必要地运行选择器。

为尼克欢呼,还有一个问题。从功能上讲,$(document.ready(){}和$(function(){})之间有区别吗;@Hailwood-不,这只是一条捷径:)