-->

JQuery mousdown with setInterval endless

2019-09-09 19:17发布

问题:

My question is referring onto this question.

At the moment I am using this answer, but I still can trick that code, so the clearInterval won't stop. While holding my left mouse button I simple press the right one to open the contextmenu. Now the clearInterval wasn't called.

If I add the contextmenu event to the clicker, with a clearInterval it does get called, but it won't clear the interval.

See this demo

回答1:

Add clearInterval() to the mousedown event:

clicker.mousedown(function() {
  clearInterval(timeout);
  timeout = setInterval(function() {
    clicker.text(count++);
  }, 500);

  return false;
});

That will be triggered on the context menu, and it will prevent multiple timers from running at once.

Fiddle