Jquery 延迟事件直到用户完成输入

标签 jquery action wait

假设用户完成最后一个键入后一秒半将启动一个功能。我有这段代码,但每次用户创建一种类型时,都会启动我不想要的脚本:

$(document).ready(function()
{
  var $firstname    = $("#firstname");

  $firstname.keyup(function()
  {
    var content = $("#firstname").val();
    $.post("ajax.php", { firstname: content}, function(result){
        var contentDiv = $("#ContainerValidation");
        contentDiv.fadeOut(400, function(){ contentDiv.html(result); });
        contentDiv.fadeIn(400);
        contentDiv.fadeOut(5000);
      });
    });
});

感谢您的帮助。

最佳答案

我认为启动一个等待 1.5 秒的计时器就足够了,如果用户在这段时间内继续输入,计时器就会中止:

function send() {
    $.post("ajax.php", { firstname: $firstname.val()}, function(result){
        $("#ContainerValidation")
           .fadeOut(400, function(){ $(this).html(result); })
           .fadeIn(400)
           .fadeOut(5000);
    });
}

var timer = null;
$firstname.keyup(function() {
    clearTimeout(timer);
    timer = setTimeout(send, 1500);
});

关于Jquery 延迟事件直到用户完成输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008004/

相关文章:

javascript - jQuery 轮播问题 : How do i stop the thumbnails from advancing?

java - 如何通过 Java 使用 Selenium 调整元素大小?

redux - 在调度 Redux Action 之前检查 AppState?

C++ 等待所有线程完成

jquery - jQuery 影响不同元素后禁用 Css 悬停效果

javascript - 如何使用 .load jQuery 获取响应

jquery - iFrame Overlay mousemove 事件适用于 Chrome 但不适用于 Internet Explorer

java - 我正在使用 Actions 类移动到某个元素,但无法单击下拉列表中的元素

java - scjp:线程相关问题

c - wait() 系统调用 - child 会忽略它吗?