JSイベントバインディング - のaddEventListener()とattachEvent()互換性の問題を解決するために

まず、結合事象

使用して、オブジェクト。=イベントを結合応答関数の関数として

このような結合欠陥イベント:
応答関数の結合要素の前に、バインドより最後のオーバーライドよりも唯一のイベント

例を説明しました

//为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>
彼は198元の記事を発表 ウォン称賛94 ビュー90000 +

おすすめ

転載: blog.csdn.net/shang_0122/article/details/104886456