Heim > Web-Frontend > js-Tutorial > jquery klicken Sie auf Ereignis und doppelklicken Sie auf Ereigniskonfliktauflösung_jquery

jquery klicken Sie auf Ereignis und doppelklicken Sie auf Ereigniskonfliktauflösung_jquery

WBOY
Freigeben: 2016-05-16 15:12:26
Original
1690 Leute haben es durchsucht

Ich muss dem Baumknoten von Bootstrap-Treeview ein Doppelklick-Ereignis hinzufügen. Die native Methode des Plug-Ins verfügt nicht über eine Doppelklick-Ereignisfunktion. Der Knoten des Plug-Ins ist standardmäßig an das Klickereignis gebunden, was zu einem Konflikt zwischen dem Klickereignis und dem Doppelklickereignis führt.

Testcode schreiben

Widersprüchlicher Code:

Problemeffektanzeige:

Jedes Mal, wenn ein Doppelklick-Ereignis ausgelöst wird, werden zwei Klick-Ereignisse ausgelöst

Code zur Lösung von Konflikten:

Problemlösende Wirkungsanzeige:

Lösen Sie das Konfliktproblem zwischen Klickereignis und Doppelklickereignis perfekt

Hier verwenden wir hauptsächlich zwei Funktionen im HTMLDOMWindow-Objekt, settimeout(), clearTimeout()

Ich habe das Zeitintervall zwischen den beiden Klickereignissen auf 300 Millisekunden eingestellt, was anhand der tatsächlichen Situation ermittelt werden muss.

Der Quellcode lautet wie folgt:

<!DOCTYPE html>
<html>

 <head>
  <meta charset="utf-8">
  <title></title>
 </head>

 <body>
  <div>事件监控</div>
 </body>
 <script type="text/javascript" src="js/jquery.min.js"></script>
 <script type="text/javascript">
  /*$(function() {
     $("div").bind("click.a", function() { //单击事件 
      $("body").append("<p>click事件</p>");
     })
     $("div").bind("dblclick.a", function() { //双击事件 
      $("body").append("<p>dblclick事件</p>");
     })
     $("div").bind("mouseover.a", function() { //鼠标经过元素的事件 
      $("body").append("<p>mouseover事件</p>");
     })
     $("div").bind("mouseout.a", function() { //鼠标移出元素的事件 
      $("body").append("<p>mouseout事件</p>");
     })
    })*/
  $(function() {
   var timer = null;
   $("div").bind("click.a", function() { //单击事件 
    clearTimeout(timer);
    timer = setTimeout(function() { //在单击事件中添加一个setTimeout()函数,设置单击事件触发的时间间隔 
     $("body").append("<p>click事件</p>");
    }, 300);
   })
   $("div").bind("dblclick.a", function() { //双击事件 
    clearTimeout(timer); //在双击事件中,先清除前面click事件的时间处理 
    $("body").append("<p>dblclick事件</p>");
   })
   $("div").bind("mouseover.a", function() { //鼠标经过元素的事件 
    $("body").append("<p>mouseover事件</p>");
   })
   $("div").bind("mouseout.a", function() { //鼠标移出元素的事件 
    $("body").append("<p>mouseout事件</p>");
   })
  })
 </script>

</html>
Nach dem Login kopieren

Das Obige ist die Konfliktlösung für JQuery-Klick- und Doppelklick-Ereignisse. Ich hoffe, dass es für das Lernen aller hilfreich sein wird.

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