原生JS的事件监听写法DEMO
2014-04-18 13:06
465 查看
<html> <head> <title>event util test</title> <script type="text/javascript"> var eventUtil = { addListener: function(element, type, hander) { if (element.addEventListener) { element.addEventListener(type, hander, false); } else if (element.attachEvent) { element.attachEvent('on' + type, hander); } else { element['on' + type] = hander; } }, getEvent: function(event) { return event || window.event; //return event ? event : window.event; }, getTarget: function(event) { return event.target || event.srcElement; }, preventDefault: function(event) { if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } }, removeListener: function(element, type, hander) { if (element.removeEventListener) { element.removeEventListener(type, hander, false); } else if (element.deattachEvent) { element.detachEvent(type, hander); } else { element['on' + type] = null; } }, stopPropagation: function(event) { if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } } }; </script> </head> <body> <input type="button" value="click me" id="btn" /> <a href="http://www.baidu.com">baidu</a> <script type="text/javascript"> (function() { var btn = document.getElementById("btn"); var link = document.getElementsByTagName("a")[0]; eventUtil.addListener(link, "click", function(event) { alert("prevent default event"); var event = eventUtil.getEvent(event); eventUtil.preventDefault(event); }); eventUtil.addListener(btn, "click", function(event) { var event = eventUtil.getEvent(event); var target = eventUtil.getTarget(event); alert(event.type); alert(target); eventUtil.stopPropagation(event); }); eventUtil.addListener(document.body, "click", function() { alert("click body"); }); })(); </script> </body> </html>
相关文章推荐
- js事件监听 解绑 添加兼容写法
- 原生js监听input值改变事件
- Vue.js移动端左滑demo和JS事件监听手机屏幕触摸事件 Touch
- jquery动态添加元素后, 该元素事件失效,可尝试原生 js写法解决
- js 事件监听原理,及兼容写法,jquer基本封装原理
- js DOM事件监听与解除的兼容性写法
- js监听键盘事件的方法_原生和jquery的区别详解
- js监听键盘事件的方法—原生和jquery的区别
- screen,client,page三种确定鼠标坐标的区别和原生JS事件写法,区别于Jquery的$.on(x,y);和$.click()
- (转载)JS事件监听 JS:attachEvent和addEventListener使用方法
- (二)原生JS实现 - 事件类方法
- JS常用方法(获取Class、获取元素样式、事件监听、cookie、ajax等)
- vue.js 监听到微信浏览器返回事件,关闭浏览器,返回公众号号主体
- 【Node.js】mongoose教程02--开启、关闭数据库,监听数据库事件
- js 监听浏览器刷新还是关闭事件
- JS事件监听手机屏幕触摸事件 Touch
- View实现事件监听DEMO(文本跟随触屏事件)
- js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME)
- JS监听关闭浏览器事件
- Java event事件监听属性值变化 demo