为元素绑定事件(DOM):有两种 addEventListener 和 attachEvent;
 
相同点: 都可以为元素绑定事件
不同点:
  1.方法名不一样
  2.参数个数不一样addEventListener三个参数,attachEvent两个参数
  3.addEventListener 谷歌,火狐,IE11支持,IE8不支持
    attachEvent 谷歌火狐不支持,IE11不支持,IE8支持
  4.this不同,addEventListener 中的this是当前绑定事件的对象
    attachEvent中的this是window
  5.addEventListener中事件的类型(事件的名字)没有on
    attachEvent中的事件的类型(事件的名字)有on
 
 
1 对象.addEventListener("事件类型",事件处理函数,false);
  谷歌和火狐支持,IE8不支持;
    为按钮绑定点击事件
      参数1:事件的类型---事件的名字,没有on
      参数2:事件处理函数---函数(命名函数,匿名函数)
      参数3:Boolean类型,是否使用捕获,一般用false 。(详情请看后面章节的事件阶段)
//为同一个元素绑定多个相同的事件--
my$("btn").addEventListener("click",function () {
console.log("小米一岁了");
},false);
my$("btn").addEventListener("click",function () {
console.log("小米二岁了");
},false);
my$("btn").addEventListener("click",function () {
console.log("小米三岁了");
},false);
my$("btn").addEventListener("click",function () {
console.log("小米四岁了");
},false);
2 对象.attachEvent("有on的事件类型",事件处理函数)
  谷歌不支持,火狐不支持,IE8支持;

    参数1:事件类型---事件名字,有on
    参数2:事件处理函数---函数(命名函数,匿名函数)

my$("btn").attachEvent("onclick",function () {
console.log("小米一岁了");
}); my$("btn").attachEvent("onclick",function () {
console.log("小米二岁了");
}); my$("btn").attachEvent("onclick",function () {
console.log("小米三岁了");
});

3 为了解决这个兼容的问题:

//element 为要绑定事情的元素 type 为绑定那种事件 func  事件的处理函数
function addEventListener(element,type,func) {
//判断浏览器是否支持这个方法
if(element.addEventListener){
element.addEventListener(type,func,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,func);
}else{
element["on"+type]=func;
}
}
05-28 02:50