2016-03-30 15 views
0

Meine Frage bezieht sich auf this Frage.JQuery mousdown mit setInterval endlos

Im Moment verwende ich this answer, aber ich kann immer noch diesen Code, so dass die clearInterval wird nicht aufhören. Während ich die linke Maustaste halte, drücke ich einfach auf die rechte, um das Kontextmenü zu öffnen. Jetzt wurde die clearInterval nicht aufgerufen.

Wenn ich das Ereignis contextmenu zu clicker hinzufüge, wird es mit einem clearInterval aufgerufen, aber das Intervall wird nicht gelöscht.

See this demo

Antwort

2

hinzufügen clearInterval() zur mousedown Veranstaltung:

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

    return false; 
}); 

Das im Kontextmenü ausgelöst wird, und es wird mehrere Timer verhindert sofort vom Laufen.

Fiddle

+0

Mist, das ist eine deutlich bessere Lösung als in meinem Kopf auftauchte. Aber ich werde das wichtige Teil meiner Antwort hier belassen: Das Setzen eines 'setInterval' auf eine Variable speichert nur einen identifizierenden Datensatz, nicht das Intervall selbst. – DBS

+0

Ich dachte, Ihre Antwort war in Ordnung und war überrascht, dass es gelöscht wurde. Guter Punkt re "Setze ein' setInterval' ... " –

+1

Ich habe schon versucht einen Kommentar zu schreiben @ DBS Antwort, weil ich noch mit schnellen Klicks" schummeln "konnte. Ich denke, dass dies durch die Tatsache des Mehrfachzugriffs auf eine Variable verursacht wurde. Im Moment kann ich deinen nicht "betrügen" (@RickHitchcock);) – Steckdoserich