Heim  >  Artikel  >  Web-Frontend  >  Wie implementiert man nur ein Doppelklick-Ereignis in jQuery? So implementieren Sie ein Doppelklick-Ereignis (ausführliche Erklärung)

Wie implementiert man nur ein Doppelklick-Ereignis in jQuery? So implementieren Sie ein Doppelklick-Ereignis (ausführliche Erklärung)

青灯夜游
青灯夜游nach vorne
2018-10-29 16:29:503716Durchsuche

Der Inhalt dieses Artikels besteht darin, vorzustellen, wie jQuery nur Doppelklickereignisse implementieren kann. So implementieren Sie ein Doppelklick-Ereignis (ausführliche Erklärung). Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

In der Ereignisbindung von jQuery können beim Ausführen eines Doppelklickereignisses (dblclick) zwei Klickereignisse (click) ausgelöst werden. Das heißt, ein Label-Element (z. B. p usw.): Wenn das Element sowohl an ein Klickereignis (click) als auch an ein Doppelklickereignis (dblclick) gebunden ist, wird das Klickereignis (click) ausgeführt, wenn das Element ausgeführt wird Das Doppelklick-Ereignis (dblclick) wird nicht ausgelöst, und das Doppelklick-Ereignis (dblclick) löst zwei Klick-Ereignisse (click) aus.

Erster Blick auf die Ausführungssequenz von Klickereignissen:

Klick (Klick): Mousedown, Mouseout, Klick;

Doppelklick (Dblclick ): Mousedown, Mouseout, Click, Mousedown, Mouseout, Click, Dblclick;

Im Doppelklickereignis (Dblclick) wird unter den beiden Klickereignissen (Click) das erste Klickereignis (Click) ausgelöst Wurde blockiert, aber nicht beim zweiten Mal. Das heißt, ein Doppelklick-Ereignis (dblclick) gibt ein Klick-Ereignis-Ergebnis (click) und ein Doppelklick-Ereignis-Ergebnis (dblclick) zurück. Anstelle des Ergebnisses eines Doppelklickereignisses (dblclick) und des Ergebnisses zweier Klickereignisse (click).

Beseitigen Sie in diesem Fall einfach das zusätzliche Klickereignis (Klick) und das Problem wird gelöst.

setTimeout

Direkt in jQuerys $(document).ready(function(){} öffnen):

//定义setTimeout执行方法
var TimeFn = null;

$('div').click(function () {
    // 取消上次延时未执行的方法
    clearTimeout(TimeFn);
    //执行延时
    TimeFn = setTimeout(function(){
        //do function在此处写单击事件要执行的代码
    },300);
});

$('div').dblclick(functin () {
     // 取消上次延时未执行的方法
    clearTimeout(TimeFn);
    //双击事件的执行代码
})

Aus den Testergebnissen. Es scheint Wenn die Zeit zwischen den beiden Klicks etwa 300 ms beträgt, können die Click- und Dblclick-Ereignisse immer noch „gleichzeitig“ aufgerufen werden, und wenn das Intervall kürzer oder länger ist, wird es nur ein Click- oder Dblclick-Ereignis geben.

An diesem Punkt kann das Auslösen eines Klicks (Klick) beim Doppelklick (Dblclick) bis zu einem gewissen Grad vermieden werden, wodurch ein Doppelklickereignis realisiert wird.

Das obige ist der detaillierte Inhalt vonWie implementiert man nur ein Doppelklick-Ereignis in jQuery? So implementieren Sie ein Doppelklick-Ereignis (ausführliche Erklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen