事件的綁定 ~~~javascript btn01 ~~~ ...
事件的綁定
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
var btn01=document.getElementById("btn01");
/*
使用對象.事件=函數 的形式綁定響應函數
她只能同時為一個元素的一個事件綁定一個響應事件
*/
// btn01.onclick=function(){
// alert("123");
// }
// addEventListener(); 通過這個方法 也可以為元素綁定事件
/*
參數
1.事件的字元串,不要on
2.回掉函數,當事件觸發時該函數會被調用
3.是否在捕獲階段觸發事件,需要一個布爾值,一般都傳false
*/
// btn01.addEventListener("click",function(){alert(1);},false);
// btn01.addEventListener("click",function(){alert(2);},false);
/*
attachEcent()
- 在IE8中可以使用attachEvent()來綁定事件
- 參數
1.事件的字元串,要on
2.回調函數
可以同時為一個事件綁定多個處理函數
不同的是他是後綁定先執行,執行順序和addEventListener()相反
*/
bind(btn01,"click",function(){
alert(this);
})
}
// 定義一個函數,用來為指定元素綁定響應函數?
// addEventListener()中的this,是綁定事件的對象?
// attachEvent()中的this,是window
/*
參數
obj 要綁定事件的字元串
eventStr 事件的字元串
callback 回調函數
*/
function bind(obj,eventStr,callback){
if(obj.addEventListener){
// 大部分瀏覽器相容的方式
obj.addEventListener(eventStr,callback,false);
}else{
/*
this是誰由調用方式決定的
callbank.call(obj)
*/
// IE8及以下
obj.attachEvent("on"+eventStr,function(){
// 在匿名函數中調用回掉函數
callback.call(obj);
});
}
}
</script>
</head>
<body>
<button type="button" id="btn01">btn01</button>
</body>
</html>