Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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延迟_Javascript_Jquery_Events - Fatal编程技术网

启动后的javascript延迟

启动后的javascript延迟,javascript,jquery,events,Javascript,Jquery,Events,因此,参考这一点: 我想出了以下代码。但它什么也没做。。。有什么建议吗 我试图让setTimeout在用户进一步键入内容时取消,这样就不会出现多个警报,只有当用户最终“停止”(希望如此)时才会出现一个警报 谢谢 var t = 0; $('input').keyup(function(){ clearTimeout(t); t = setTimeout(alert($('input').val()),1000); } 替换 t = setTimeout(alert($('

因此,参考这一点:

我想出了以下代码。但它什么也没做。。。有什么建议吗

我试图让setTimeout在用户进一步键入内容时取消,这样就不会出现多个警报,只有当用户最终“停止”(希望如此)时才会出现一个警报

谢谢

var t = 0;  
$('input').keyup(function(){
    clearTimeout(t);
    t = setTimeout(alert($('input').val()),1000);
}
替换

t = setTimeout(alert($('input').val()),1000);

您正在将输入值传递给setTimeout,但需要一个函数(或一个字符串,它可以作为代码计算)作为第一个参数

并将最后一行替换为
})以便代码编译

无法获取元素列表的.val()$('input')选择屏幕上的所有输入,并且只给出列表中第一个输入的值

此代码应适用于所有输入,但仅对触发事件的输入运行超时

var t = 0;  
$('input').keyup(function(){
    var that = this;

    clearTimeout(t);
    t = setTimeout(function() {
        alert($(that).val());
    }, 1000);
}

我希望这有帮助

为了防止在几个不同的输入上出现混淆,请使用
参考,在
数据()中保持超时。

var out=$('#out');
$('input').keyup(函数(){
var$this=$(this);
clearTimeout($this.data('timeout'));
$this.data('timeout',setTimeout(函数(){
out.append($('').text($this.attr('id')+':'+$this.val());
    }, 1000));
});​

真奇怪!你能告诉我为什么我的坏了吗@phileaton它不编译,因为最后一行应该是})@显然是塞洛西迪斯。但我想现实世界中的案例会有一个更有趣的选择器,可能是基于ID的。没有兴趣回显页面的所有输入!好害羞!非常感谢你!当然可以,但它似乎是这个问题的一部分。好吧,jQuery it将获得第一个的val,但这通常不是我们想要的。
var t = 0;  
$('input').keyup(function(){
    var that = this;

    clearTimeout(t);
    t = setTimeout(function() {
        alert($(that).val());
    }, 1000);
}
var out = $('#out');
$('input').keyup(function() {
    var $this = $(this);
    clearTimeout($this.data('timeout'));
    $this.data('timeout', setTimeout(function() {
        out.append($('<div>').text(($this.attr('id') + ': ' + $this.val())));
    }, 1000));
});​