单击时返回False /停止jQuery函数

Joe*_*Joe 2 jquery

我有Start()准备就绪的功能.当我点击时.ExampleClick,我想停止Start()运行功能.这是我的例子......

$(document).ready(function(){

  $(function Start(){
      // Do Stuff on Ready
  });

  $(document).on("click",".ExampleClick",function() {
     // When this is fired, function Start() should stop running
  });

});
Run Code Online (Sandbox Code Playgroud)

实现我想做的最好的方法是什么?

mea*_*gar 7

如果Start永远循环,您的浏览器将挂起.JavaScript函数无法真正并行运行.假设Start确实存在一些永远循环的后台进程,你需要重新思考它以便它执行一次然后调度自己再次执行某些点,允许处理其他事件.

每次Start执行时,它都可以检查由点击处理程序维护的某个状态,以决定它是否应该运行并再次入队:

$(document).ready(function(){

  var clicked = false;

  var Start = function () {
      if (clicked) return;

      // Do Stuff on Ready

      setTimeout(Start, 100);
  };

  Start();

  $(document).on("click",".ExampleClick",function() {
     // When this is fired, function Start() should stop running

     clicked = true;
  });

});
Run Code Online (Sandbox Code Playgroud)