Heim  >  Artikel  >  Web-Frontend  >  Teilen Sie die Lösung für den Konflikt zwischen dem JQuery-Ereignis dblclick und click

Teilen Sie die Lösung für den Konflikt zwischen dem JQuery-Ereignis dblclick und click

黄舟
黄舟Original
2017-06-27 10:42:001968Durchsuche

In jquery sind click und dblclick beide Klick-events, aber in dblclick handelt es sich bei event um einen wiederholten Klick auf das Click-Ereignis. Wenn wir es also gleichzeitig tun, wird es so sein Konflikt wie folgt Schauen wir uns die Analyse an.

Im Doppelklickereignis (dblclick) wird von den beiden ausgelösten Klickereignissen (Klick) das erste Klickereignis (Klick) blockiert, das zweite jedoch nicht.

<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    $("p").slideToggle();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<button>切换</button>
</body>

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).

dblclick() Wenn auf ein Element doppelgeklickt wird, tritt das dblclick-Ereignis auf. Ein Klick erfolgt, wenn sich der Mauszeiger über einem Element befindet und die linke Maustaste gedrückt und wieder losgelassen wird. Treten innerhalb kurzer Zeit zwei Klicks auf, handelt es sich um ein Doppelklick-Ereignis.

<script type="text/javascript">
$(document).ready(function(){
  $("button").dblclick(function(){
    $("p").slideToggle();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<button>请双击此处</button>
</body>

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

var timer = null; 
$(&#39;button&#39;).live(&#39;click&#39;, function(event){ 
    timer && clearTimeout(timer); 
    timer = setTimeout(function(){ 
        console.log(event.type); 
    },300); 
}).live(&#39;dblclick&#39;, function(event){ 
    timer && clearTimeout(timer); 
    console.log(event.type); 
});

Das obige ist der detaillierte Inhalt vonTeilen Sie die Lösung für den Konflikt zwischen dem JQuery-Ereignis dblclick und click. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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