【问题标题】:Jquery event or function calls automaticallyJquery 事件或函数自动调用
【发布时间】:2012-10-08 21:28:52
【问题描述】:

有没有什么函数可以在用户停止输入 Jquery 后 5 秒后调用?

谢谢

【问题讨论】:

  • 没有。然后还有几个不在这里放足够的东西。不不不
  • 你能说得更具体点吗?你有一些示例代码吗?
  • @Jamiec 为什么“不”?简单的 setTimeout/clearTimeout 就可以解决问题
  • 当用户停止输入 Jquery 时是什么意思?

标签: javascript jquery-ui jquery


【解决方案1】:
function afterTypeProcess(){
   //Dosomething
}

var timeid;

$("input").keyup(function(){
   clearTimeout(timeid);
   timeid = setTimeout(afterTypeProcess, 5000);
});

【讨论】:

    【解决方案2】:

    只需清除并重置每个 keyup 事件的超时时间:

    ​var countdown;
    $("textarea:first").on("keyup", function(){
        clearTimeout(countdown);
        countdown = setTimeout(function(){
            console.log("Fired");
        }, 5000);
    });​​
    

    小提琴:http://jsfiddle.net/FQtDn/

    【讨论】:

    • @2astalavista 对超时的引用被覆盖,但队列没有改变。尝试删除小提琴中的clearTimeout 部分,并在您键入时观察您的控制台 - 它会在每次按键事件后五秒钟被调用。
    【解决方案3】:

    【讨论】:

    • 好的,更改为 Mozilla 开发者链接。谢谢(你的)信息。 ;-)
    【解决方案4】:

    keyup 加上setTimeout 应该可以解决问题。您可以查看 jsfiddle here 对于文本输入

    您可以使用以下代码检查 keyup

    $("#entersomething").keyup(function(e) {
        setTimeout(function(){ alert("up"); }, 5000);
    });
    

    【讨论】:

      【解决方案5】:

      请检查这个 jsfiddle here

      $(document).on("change", ".test", function(){
          window.setTimeout(dothis, 5000);
      
      });
      
      function dothis(){
          alert('test');
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 2018-05-31
        • 1970-01-01
        • 2013-09-09
        • 1970-01-01
        相关资源
        最近更新 更多