イベントハンドラ
6809 ワード
イベントとは、ユーザまたはブラウザ自身が実行するある動作のことで、例えば、click、ロードなどは、イベントの名前であり、応答イベントの関数をイベントハンドラといい、イベントハンドラの名前は「on」で始まり、例えば、clickイベントのイベントハンドラはon loadである.
HTMLイベントハンドラ
各要素がサポートするイベントごとに、対応するイベントハンドラと同名のHTML特性を使用して指定できます.例えば、ボタンをクリックした時にいくつかのjavascriptを実行します.コードは以下の通りです.
HTMLイベントハンドラ
各要素がサポートするイベントごとに、対応するイベントハンドラと同名のHTML特性を使用して指定できます.例えば、ボタンをクリックした時にいくつかのjavascriptを実行します.コードは以下の通りです.
function showMessage(){
alert("hello world!");
}
<input type="button" value="Click Me" onclick="showMessage()" />
</code></pre>
<p>showMessage() <script> , , :</p>
<ul>
<li> </li>
</ul>
<ol>
<li> , event( )</li>
<li> ,this </li>
</ol>
<ul>
<li> </li>
</ul>
<ol>
<li> </li>
<li> </li>
<li>HTML javascript , , HTML javascript ( js ), HTML Javascript 。</li>
</ol>
<h2>DOM0 </h2>
<p> JavaScript , 。</p>
<ul>
<li> ( window document) , , onclick。 , 。</li>
</ul>
<pre><code> var btn=document.getElementById("myBtn");
btn.onclick=function(){
alert("Clicked");
};
</code></pre>
<p> : , , 。</p>
<ul>
<li> DOM0 。 , ; , this 。 this 。</li>
</ul>
<pre><code> var btn=document.getElementById("myBtn");
btn.onclick=function(){
alert(this.id);//"myBtn"
};
</code></pre>
<p> : 。</p>
<ul>
<li> DOM0 : btn.onclick=null; // <br> HTML , onclick HTML 。 null, 。</li>
</ul>
<h2>DOM2 </h2>
<p>DOM2 , :<strong>addEventListener()</strong> <strong>removeEventListener()</strong>。 DOM , 3 。 、 。 true ;false 。 , 。</p>
<ul>
<li> DOM2 :</li>
</ul>
<pre><code> var btn=document.getElementById("myBtn");
btn.addEventListener("click",function(){
alert(this.id);
},false);
btn.addEventListener("click",function(){
alert("Hello world!");
},false);
</code></pre>
<p> </p>
<ul>
<li> addEventListener() removeEventListener() 。 。 addEventListener() 。</li>
</ul>
<pre><code> var btn=document.getElementById("myBtn");
btn.addEventListener("click",function(){
alert(this.id);
},false);
btn.removeEventListener("click",function(){
alert(this.id);
},false);// ! , addEventListener()
</code></pre>
<p> :</p>
<pre><code> var btn=document.getElementById("myBtn");
var handler=function(){
alert(this.id);
};
btn.addEventListener("click",handler,false);
btn.removeEventListener("click",handler,false);
</code></pre>
<h2>IE </h2>
<p>IE DOM :<strong>attachEvent() detachEvent()</strong>。 : 。 IE8 , attachEvent() 。</p>
<pre><code> var btn=document.getElementById("myBtn");
btn.attachEvent("onclick",function(){ // onclick, addEventListener() click
alert(this.id);
});
</code></pre>
<ul>
<li> IE attachEvent() DOM0 。DOM0 ; attachEvent() , this=window。</li>
</ul>
<pre><code> 1 var btn=document.getElementById("myBtn");
2 btn.attachEvent("onclick",function(){
3 alert(this===window); //true
4 });
</code></pre>
<ul>
<li> addEventListener() ,attachEvent() 。 attachEvent() , 。</li>
<li> attachEvent() , detachEvent() 。</li>
</ul>
<h2> </h2>
<p> 。 , 。</p>
<pre><code> var EventUtil={
// DOM0 、DOM2 、IE / , 3 :
、 、 。
addHandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
} else if(element.attachEvent){
element.attachEvent("on"+type,handler);
} else{
element["on"+type]=handler;
}
},
removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
} else if(element.detchaEvent){
element.detchaEvent("on"+type,handler);
} else{
element["on"+type]=null;
}
}
};
</code></pre>
<p> :</p>
<pre><code> var btn=document.getElementById("myBtn");
var handler=function(){
alert("Clicked");
};
EventUtil.addHandler(btn,click,handler);
//
EventUtil.removeHandler(btn,click,handler);
</code></pre>
<p>addHandler() removeHandler() , IE 。 , 。 ,DOM0 。 DOM0 。</p>
</article>
</div>
</div>
</div>
<!--PC WAP -->
<div id="SOHUCS" sid="1184467297562107904"></div>
<script type="text/javascript" src="/views/front/js/chanyan.js">