記事のディレクトリ
まず、結合事象
使用して、オブジェクト。=イベントを結合応答関数の関数として
このような結合欠陥イベント:
応答関数の結合要素の前に、バインドより最後のオーバーライドよりも唯一のイベント
例を説明しました
//为btn01绑定一个单击事件
btn01.onclick=function(){
alert(1)
}
//为btn01绑定一个单击事件
btn01.onclick=function(){
alert(2)
}
btn01時間をクリックして、唯一の警告(2)、警報(1)上書き
第二に、ソリューション
2.1addEventListener()とattachEvent()メソッド
addEventListenerを()例:
btn01.addEventListener("click",function(){
alert(1);
},false);
btn01.addEventListener("click",function(){
alert(2);
},false);
最初の警告(1)を行って、[アラート(2)を行います
attachEvent()例
btn01.attachEvent("onclick",function(){
alert(1);
})
btn01.attachEvent("onclick",function(){
alert(2);
})
最初の警告(2)を実行し、その後アラート(1)を行います
2.2自己書き込み機能は、互換性の問題を解決するには、2つの方法があります
関数のバインド・パラメータ
- OBJ:イベントオブジェクトをバインドするには
- eventStr:イベントの文字列(ない上)
- コールバック:コールバック関数
<script type="text/javascript">
window.onload = function(){
var btn01 = document.getElementById("btn01");
bind(btn01,"click",function(){
alert(1);
})
bind(btn01,"click",function(){
alert(2);
})
}
/*
* 参数
* obj:要绑定的事件对象
* eventStr:事件的字符串(不要on)
* callback:回调函数
*/
function bind(obj,eventStr,callback){
if(obj.addEventListener){
//大部分浏览器兼容的方式
obj.addEventListener(eventStr,callback,false);
}else{
//IE8及以下
obj.attachEvent("on"+eventStr,function(){
//在匿名函数中调用匿名函数
callback.call(obj);
});
}
}
</script>