Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung von Javascript-Bubbling-Ereignissen, Mausereignissen und Dom-Instanzen

伊谢尔伦
Freigeben: 2017-07-22 15:46:57
Original
1476 Leute haben es durchsucht

Über target und currentTarget im Bubbling

Target befindet sich in der Zielphase des Ereignisflusses; currentTarget befindet sich in der Erfassungs-, Ziel- und Bubbling-Phase des Ereignisflusses. Nur wenn sich der Ereignisfluss in der Zielphase befindet, sind die beiden Richtungen gleich. Wenn er sich in der Erfassungs- und Bubbling-Phase befindet, zeigt target auf das angeklickte Objekt und currentTarget auf das übergeordnete Objekt des aktuellen Ereignisses.


<p id="outer" style="background:#099"> 
      <p>我是目标p</p>  ----点击这部分,输出:e.target.tagName : P || e.currentTarget.tagName : p
      <p id="inner" style="background:#9C0">我是目标p</p> ----点击这部分,输出:e.target.tagName : P || e.currentTarget.tagName : p

      <br> ----点击这部分,输出:e.target.tagName : p || e.currentTarget.tagName : p

</p>

//看下第二个变列:
<p id="outer" style="background:#099"> 
      <p>我是目标p</p>  ----点击这部分,输出:e.target.tagName : p || e.currentTarget.tagName : p
      <p id="inner" style="background:#9C0">我是目标p</p> ----点击这部分,输出:e.target.tagName : P || e.currentTarget.tagName : p

      <br> ----点击这部分,输出:e.target.tagName : p || e.currentTarget.tagName : p

</p>
Nach dem Login kopieren


function getObj(id)
{ 
  return document.getElementById(id);   
} 
function addEvent(obj, event, fn)
{ 
  if(window.attachEvent)
  { 
   obj.attachEvent("on" + event, fn); 
  }
  else if(window.addEventListener)
  {  
   obj.addEventListener(event, fn, false); 
  } 
} 
function test(e)
{ 
  alert("e.target.tagName : " + e.target.tagName + "\n e.currentTarget.tagName : " + e.currentTarget.tagName); 
 } 
   var outer = getObj("outer"); 
   var inner = getObj("inner"); 
   //addEvent(inner, "click", test); 
   addEvent(outer, "click", test);
Nach dem Login kopieren

Der Unterschied zwischen IE und DOM
                           IE
Ziel event.target event.srcElement abrufen
Zeichencode event.charCode event.keyCode abrufen
Standardverhalten verhindern event.prevetDefault() event.returnvalue=false
Bubbling Event.stopPropagation() event.cancelBubble=true

Informationen zum Blockieren des Standardverhaltens, wenn der Benutzer beispielsweise mit der rechten Maustaste klickt, können Sie die Blockierungsstandardeinstellung verwenden, wenn Sie nicht möchten, dass das Menü angezeigt wird Verhalten:


document.body.oncontextmenu=function(event)
{
  if(isIE)
  {
     var oEvent=window.event;
     oEvent.returnValue=false; //也可以直接是return false;阻止默认行为
  }
  else
  {
    oEvent.preventDefault();
  }
}
Nach dem Login kopieren

Mausereignis


<p>use your mouse to click and double click the red square</p>
<p style="width:100px;height:100px;background:red"
    onmouseover="handleEvent(event)"
    onmouseout="handleEvent(event)"
    onmousedown="handleEvent(event)" 
    onmouseup="handleEvent(event)"  
    onclick="handleEvent(event)" 
    ondblclick="handleEvent(event)" id="p1"
   >       
</p>
<p><textarea id="txt1" rows="5" cols="45"></textarea></p>
<!--检测键盘事件-->
<p><input type="text" id="textbox" 
      onkeydown="handle(event)"
      onkeypress="handle(event)"
      onkeyup="handle(event)"
     ></p>
<p><textarea id="txt2" rows="10" cols="45"></textarea></p>
Nach dem Login kopieren
js-Datei ist wie folgt folgt:


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Javascript-Bubbling-Ereignissen, Mausereignissen und Dom-Instanzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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