js取消默认事件和事件绑定
2016-10-12 18:55
369 查看
1.默认事件:
浏览器本事具备的一些功能,如鼠标右键菜单,a标签跳转页面。如果要阻止这些默认行为,可以用return false;
w3c中定义了ev.preventDefault();这个不兼容IE11以下。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> document.oncontextmenu=function (ev){ return false;//阻止右键菜单的动作 //ev.preventDefault() }; </script> </head> <body> <!--return false;阻止了a标签的href跳转动作--> <a href="https://www.baidu.com" onclick="return false;">百度一下</a> </body> </html>
举个栗子,文本框中只能键盘输入数字和删除键:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload=function (){ var oTxt=document.getElementById('txt'); oTxt.onkeydown=function (ev){ // keyCode:8,48-57,96-105, var iEvent=ev||event; if(!(iEvent.keyCode==8||(iEvent.keyCode>=48&&iEvent.keyCode<=57)|| (iEvent.keyCode>=96&&iEvent.keyCode<=105))){ return false;//除去上面的按键码以外,取消其表单默认可以输入动作 } }; }; </script> </head> <body> <input type="text" id="txt"/> </body> </html>
2.事件绑定
在项目中,很多时候要用到两个onload、onscroll等事件,但浏览器只会执行最后一个,这时我们就要用到绑定事件。下面代码可以看到普通事件跟绑定事件的区别:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload=function (){ var oBtn1=document.getElementById('btn1'); var oBtn2=document.getElementById('btn2'); oBtn1.onclick=function (){ alert('普通事件1'); }; oBtn1.onclick=function (){ alert('普通事件2'); }; // 可以看到普通事件只执行了第二个 oBtn2.addEventListener('click',function (){ alert('绑定事件1'); },false); oBtn2.addEventListener('click',function (){ alert('绑定事件2'); },false); // 绑定事件先执行第一个,接着执行第二个,IE中用oBtn2.attachEvent()添加绑定事件 }; </script> </head> <body> <input type="button" id="btn1" value="按钮1" /> <input type="button" id="btn2" value="按钮2" /> </body> </html>
给绑定事件做了兼容性处理,代码如下:
function addEv(obj,type,fn){ if(obj.attachEvent){ obj.attachEvent('on'+type,fn); }else{ obj.addEventListener(type,fn,false); } }
IE中会先执行绑定事件2,然后再执行绑定事件1
addEventListener的第三个参数之前的博客有提到,点击打开链接
相关文章推荐
- js取消按键事件的默认行为
- js事件绑定及冒泡、捕获和默认行为处理
- 一个取消事件的简单js例子(事件冒泡与取消默认行为)
- js取消事件冒泡和阻止事件的默认行为(兼容写法)
- JS 传播事件、取消事件默认行为、阻止事件传播
- JS事件绑定、冒泡/捕获、常见的兼容处理、委托、阻止默认行为和冒泡
- js取消事件冒泡和阻止事件的默认行为(兼容写法)
- js取消气泡事件、阻止浏览器的默认行为
- js用addeventlistener绑定事件,阻止默认事件。
- js 去掉浏览器右击默认事件并绑定右击事件
- JS传播事件、取消事件默认行为、阻止事件传播详解
- JS 监听绑定和取消事件
- js:取消事件的默认行为
- js 解决movebox移动问题 取消图片默认拖动事件
- JS中的事件传播和默认事件取消
- JS取消事件的默认行为和取消冒泡
- js/jquery 事件绑定与取消
- JS 传播事件、取消事件默认行为、阻止事件传播
- 解决js添加一个按钮,让这个按钮也获得初始的事件,绑定到新生成的DOM
- 取消默认事件