JavaScript:
myTimeout = setTimeout(function() {
// this will fire in 300ms if you don't perform some other action!
},300);
document.getElementById("button").click = function() {
// button clicked, stop the timeout
clearTimeout(myTimeout);
};
HTML:
<button id="button">Click me</button>
Die setTimeout startet den 300 ms-Timer. Der Click-Handler bindet ein Click-Ereignis an eine Schaltfläche auf der Seite, die den Zeitgeber durch Klicken auf clearTimeout stoppt.
Wenn Sie setTimeout aufrufen, weisen Sie es einer Variablen zu. Dann können Sie diese Variable verwenden, um den Timer später durch Aufrufen von clearTimeout zu stoppen.
Sie können die gleiche Technik für jedes Ereignis verwenden, z. B. für Tastendruck, mouseover-Ereignisse, Schaltflächen- oder DOM-Elementklicks und vieles mehr.
Beachten Sie, dass das gleiche Verfahren auch für setInterval gilt.
myInterval = setInterval(function() {
// do stuff every 300ms
},300);
clearInterval(myInterval); // stop the interval
Mit addEventListener:
function start() {
window.addEventListener("click", function() {
timeout = setTimeout(function() {
// do stuff after 300ms after the first click
clearTimeout(timeout);
start();
}, 300)
}, false);
}
Den oben sollte einen globalen Klick Zuhörer auf der Seite und klar binden und den Timer rekursiv nach einem Klick starten. Der Hörer stoppt, wenn es keine Klicks gibt, aber das sollte Ihnen den Einstieg erleichtern.
Was ist, wenn ich es mit Event Listner hinzufügen möchte? –
aktualisierte Antwort, dies sollte Sie beginnen. Viel Glück – jmort253
jmort253 Sie waren wirklich nett, aber hier ist, was ich tun möchte, ich möchte ein Tortenmenü nach 300ms erscheinen, wenn ich nur geklickt habe, aber wenn ich Maus und Maus klicke, möchte ich, dass Kuchenmenü nicht erscheint und Option ausgewählt werden i habe alles getan, nur wirklich versucht, dies zu tun, aber es ist nicht passiert für mich .. und ich möchte dies mit sogar Handler tun, so dass ich sie hinzufügen und entfernen können –