1. 为元素绑定事件的引入:
用src直接绑定多个,只实现最后一个(programmer2.js)
<input type="button" value="按钮" id="btn"/> <script src="common.js"></script> <script src="programmer1.js"></script> <script src="programmer2.js"></script> <script> my$("btn").onclick=function () { console.log("小杨好帅哦"); }; </script>
2. 为元素绑定多个事件
为元素绑定事件(DOM) :一种, 但是不兼容, 所以还是有两种
1. 对象.addEventListener("事件类型", 事件处理函数, false); ----->谷歌和火狐支持, IE8不支持
2. 对象.attachEvent("有on的事件类型", 事件处理函数) ----->谷歌不支持, 火狐不支持, IE8支持
2.1 对象.addEventListener("事件类型", 事件处理函数, false); ----->谷歌和火狐支持, IE8不支持
案例:为按钮绑定点击事件
- 参数1:事件的类型---事件的名字,没有on
- 参数2:事件处理函数---函数(命名函数,匿名函数)
- 参数3:布尔类型,目前就写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.2 对象.attachEvent("有on的事件类型", 事件处理函数) ----->谷歌不支持, 火狐不支持, IE8支持
- 参数1:事件类型---事件名字,有on
- 参数2:事件处理函数---函数(命名函数,匿名函数)
my$("btn").attachEvent("onclick", function () { console.log("小杨好帅哦1"); }); my$("btn").attachEvent("onclick", function () { console.log("小杨好帅哦2"); }); my$("btn").attachEvent("onclick", function () { console.log("小杨好帅哦3"); });
3. 为元素绑定事件的兼容代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <input type="button" value="按钮" id="btn"/> <script src="common.js"></script> <script> //为任意元素.绑定任意的事件, 任意的元素,事件的类型,事件处理函数 function addEventListener(element,type,fn) { //判断浏览器是否支持这个方法 if(element.addEventListener){ element.addEventListener(type,fn,false); }else if(element.attachEvent){ element.attachEvent("on"+type,fn); }else{ element["on"+type]=fn; } } addEventListener(my$("btn"),"click",function () { console.log("哦1"); }); addEventListener(my$("btn"),"click",function () { console.log("哦2"); }); addEventListener(my$("btn"),"click",function () { console.log("哦3"); }); </script> </body> </html>