Heim > Web-Frontend > Front-End-Fragen und Antworten > So sorgen Sie dafür, dass in jquery nur ein Doppelklick-Ereignis auftritt

So sorgen Sie dafür, dass in jquery nur ein Doppelklick-Ereignis auftritt

PHPz
Freigeben: 2023-04-26 15:50:04
Original
790 Leute haben es durchsucht

In der Webentwicklung wird JQuery häufig verwendet, um Seiteninteraktionseffekte zu erzielen. Unter diesen sind Doppelklickereignisse und Klickereignisse unvermeidlich. Manchmal wird jedoch festgestellt, dass ein Doppelklickereignis zwei Klickereignisse auslöst. Zu diesem Zeitpunkt müssen wir das Auftreten des Klickereignisses verhindern und nur das Auftreten des Doppelklickereignisses zulassen. Wie soll es also erreicht werden?

Zuerst müssen wir die Ereignisbindungsmethode in jquery verstehen. Es gibt zwei Methoden für die Ereignisbindung: Eine ist die Bindung mit der Methode bind() und die andere die Bindung mit der Methode on(). Diese beiden Methoden sind im Wesentlichen gleich. Die on()-Methode ist eine aktualisierte Version der bind()-Methode und bietet Unterstützung für dynamische Elemente. Mit diesen beiden Methoden können wir die Doppelklick-Ereignisbindung implementieren.

Die spezifische Implementierungsmethode lautet wie folgt:

Verwenden Sie die Methode bind (), um Doppelklickereignisse und Klickereignisse zu binden.

$("#element").bind({
    click: function() {
        //单击事件的处理逻辑
    },
    dblclick: function() {
        //双击事件的处理逻辑
    }
});
Nach dem Login kopieren

Diese Methode definiert tatsächlich ein Objekt und bindet Click- und Dblclick-Ereignisse. Dann werden jeweils ihre entsprechenden Verarbeitungslogikfunktionen angegeben.

Verwenden Sie die Methode on(), um Doppelklickereignisse und Klickereignisse zu binden.

$("#element").on("click", function() {
    //单击事件的处理逻辑
}).on("dblclick", function() {
    //双击事件的处理逻辑
});
Nach dem Login kopieren

Diese Methode bindet zuerst das Click-Ereignis und dann das Dblclick-Ereignis in einer Kette. Es ist auch erforderlich, die entsprechenden Verarbeitungslogikfunktionen anzugeben.

Bei den beiden oben genannten Methoden können wir feststellen, dass das Doppelklickereignis nach dem Klickereignis gebunden ist. Dies liegt daran, dass, wenn das Doppelklick-Ereignis vor dem Klick-Ereignis gebunden ist, beim Doppelklicken des Benutzers zuerst das Doppelklick-Ereignis und dann das Klick-Ereignis zweimal ausgelöst wird. Dadurch wird nicht der Effekt erzielt, Klickereignisse zu verbieten.

Als nächstes müssen wir das Auslösen des Klickereignisses in der Logikfunktion zur Verarbeitung von Doppelklickereignissen deaktivieren. Die spezifische Operation besteht darin, die Funktion setTimeout () zu verwenden, um die Ausführung des Klickereignisses nach einer bestimmten Zeitspanne zu ermöglichen. Wenn der Benutzer innerhalb dieses Zeitraums erneut klickt, wird die letzte setTimeout()-Funktion gelöscht und eine neue setTimeout()-Funktion zurückgesetzt. Auf diese Weise kann die Auswirkung des Klickereignisses gelöscht werden und nur die Auswirkung des Doppelklickereignisses bleibt erhalten.

Der spezifische Implementierungscode lautet wie folgt:

var timer = null;
$("#element").bind({
    click: function() {
        var that = this;
        clearTimeout(timer);
        timer = setTimeout(function() {
            //单击事件的处理逻辑
        }, 200);
    },
    dblclick: function() {
        clearTimeout(timer);
        //双击事件的处理逻辑
    }
});
Nach dem Login kopieren

Im obigen Code definieren wir eine Timer-Variable, um den Rückgabewert der Funktion setTimeout() zu speichern, damit er später gelöscht werden kann. Löschen Sie in der Logikfunktion zur Verarbeitung von Klickereignissen zunächst die letzte Funktion setTimeout() und legen Sie dann eine neue Funktion setTimeout() fest, um die Ausführung des Klickereignisses um 200 Millisekunden zu verzögern. Löschen Sie in der Logikfunktion zur Verarbeitung von Doppelklick-Ereignissen die letzte Funktion setTimeout() und führen Sie dann das Doppelklick-Ereignis aus. Auf diese Weise wird das Klickereignis deaktiviert.

Es ist zu beachten, dass das Zeitintervall der Funktion setTimeout() entsprechend der tatsächlichen Situation angepasst werden muss. Es ist am besten, es nach dem Testen festzulegen.

Zusammenfassend können wir die folgende Methode verwenden, um Klickereignisse zu deaktivieren:

  1. Verwenden Sie die Methode bind() oder on(), um das Doppelklickereignis bzw. das Klickereignis zu binden nach dem Klickereignis.
  2. Verwenden Sie die Funktion setTimeout() in der Logikfunktion zur Klickereignisverarbeitung, um das Klickereignis um einen bestimmten Zeitraum zu verzögern, bevor es ausgeführt wird.
  3. Löschen Sie die letzte Funktion setTimeout() in der Logikfunktion zur Verarbeitung von Doppelklick-Ereignissen und führen Sie das Doppelklick-Ereignis aus.

Im Folgenden erfahren Sie, wie Sie ein Doppelklick-Ereignis implementieren, um das Auftreten eines Klick-Ereignisses über jquery zu verhindern.

Das obige ist der detaillierte Inhalt vonSo sorgen Sie dafür, dass in jquery nur ein Doppelklick-Ereignis auftritt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage