绑定事件监听函数
2017-11-29 16:46
253 查看
最近一直在看《精通javascript》,很赞的书,顺便做一些小笔记。
今天看到了事件绑定方面的内容,分为传统绑定和W3C的DOM绑定
1. 传统绑定如下:
优点:不同浏览器都可以正常使用;可以使用this关键字,引用当前元素。
缺点:只会在事件冒泡时候运行;一个函数一次只能绑定一个事件处理函数,相同的事件处理函数互相覆盖;事件对象仅对非IE浏览器可用。
2. DOM绑定:W3C
支持冒泡(false)捕获(true),this引用当前元素,同一个元素可以绑定多个事件,并且不会覆盖先前绑定的事件。
不支持IE。
3. DOM绑定:IE
同一个元素可以绑定多个事件,并且不会覆盖先前绑定的事件。
仅支持冒泡阶段,this对象指向window对象,而不是当前元素
根据API,可以在IE下获得当前元素,如下:
今天看到了事件绑定方面的内容,分为传统绑定和W3C的DOM绑定
1. 传统绑定如下:
document.getElementById("button").onclick = function(e) { // your code alert(this.value); }
优点:不同浏览器都可以正常使用;可以使用this关键字,引用当前元素。
缺点:只会在事件冒泡时候运行;一个函数一次只能绑定一个事件处理函数,相同的事件处理函数互相覆盖;事件对象仅对非IE浏览器可用。
2. DOM绑定:W3C
void addEventListener(String type, Function listener, boolean useCapture);
支持冒泡(false)捕获(true),this引用当前元素,同一个元素可以绑定多个事件,并且不会覆盖先前绑定的事件。
不支持IE。
3. DOM绑定:IE
void attachEvent(String type, Function listener);
同一个元素可以绑定多个事件,并且不会覆盖先前绑定的事件。
仅支持冒泡阶段,this对象指向window对象,而不是当前元素
根据API,可以在IE下获得当前元素,如下:
function init() { var btn = document.getElementById("button1"); if (document.all) { // IE btn.attachEvent('onclick',function(e) { // Event.srcElement : A reference to the Window, Document, // or Element object that generated the event. alert(e.srcElement.value); }); } else { // 非IE btn.addEventListener('click',function(e) { //alert(this.value); alert(e.target.value); },false); } } <BODY onload="init();"> <input name="test1" type="button" id="button1" value="click me" /> </BODY>
相关文章推荐
- JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
- JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
- 转:JavaScript中绑定事件监听函数的通用方法
- JavaScript实现为事件句柄绑定监听函数的方法分析
- JavaScript中为事件句柄绑定监听函数
- JavaScript基础_13事件绑定函数+监听函数+冒泡事件流
- JavaScript绑定事件监听函数的通用方法
- JavaScript为事件句柄绑定监听函数实例详解
- 书:"Pro JavaScript Techniques 精通JavaScript"之绑定/移除事件监听函数
- JS添加/绑定事件监听函数并传参数attachEvent和addEventListener兼容个浏览器
- JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
- JavaScript中绑定事件监听函数的通用方法 addEvent() [转]
- JavaScript为事件句柄绑定监听函数实例详解
- JavaScript中为事件句柄绑定监听函数
- 深入了解javascript事件 -事件绑定(事件处理函数/监听函数)
- JavaScriptDOM练习之为同一个元素绑定多个不同的事件并指向同一个事件处理函数
- vbox等控件添加滚动条滚动事件的监听函数
- 使用“事件监听/链式事件处理方式”实现window.onload同时调用多个函数
- 兼容IE9以下和非IE浏览器的原生js事件绑定函数
- 绑定事件中 如可控制函数的执行次数