延迟函数调用按钮单击 - JavaScript

时间:2017-04-29 13:57:55

标签: javascript jquery

我试图在点击按钮时按下按钮点击延迟函数调用,当你点击按钮时它应该延迟3到5秒钟才能调用该函数。这是我的片段:

jQuery(document).ready(function(){
  $('#myButton').on('click', myFunction);

  setTimeout(function() { 
    myFunction(); 
  }, 5000);

  function myFunction() {
    var text = $(".total").text();
    alert(text);
  }
});

如何才能正确使用仅在按下按钮5秒钟时调用该功能?

3 个答案:

答案 0 :(得分:1)

问题是因为您向点击处理程序提供了对myFunction()的引用,因此会立即调用它。

相反,您需要将setTimeout()调用放入您提供给click的匿名函数中。您还需要将myFunction()定义放在window的范围内,以便setTimeout()调用它。试试这个:

$(function() {
  $('#myButton').on('click', function() {
    setTimeout(myFunction, 5000);
  });        
});

function myFunction() {
  var text = $(".total").text();
  alert(text);
}

答案 1 :(得分:1)

您可以尝试下面的代码,我在您的代码段中做了一些更改:

jQuery(document).ready(function(){
  $('#myButton').on('click', function(){
    setTimeout(myFunction, 5000);
  });

  function myFunction() {
    var text = $(".total").text();
    alert(text);
  } 
}); 

答案 2 :(得分:0)

jQuery(document).ready(function(){
    $('#myButton').on('click', myFunction);
    function myFunction() {
        setTimeout(function(){
            var text = $(".total").text();
            alert(text);
        }, 5000);
    }
});