Search code examples
javascriptjquerymouseeventmousemousedown

JQuery mousdown with setInterval endless


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


Solution

  • 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