当鼠标或者键盘触发某一事件时,在JavaScript中,我们可以为这个事件设置相应的动作。当然浏览器本身甚至是操作系统也会有对某一事件的默认动作,这样除了由于我们设置了自己定义句柄而产生的动作之外,还会有默认的动作发生。
通过事件属性取消默认动作
DOM的Event对象,通过其preventDefault()方法来取消默认动作。在IE下,则是将event的returnValue属性设置为false来阻止浏览器执行与事件相关的默认动作。
为了保证阻止浏览器默认动作的发生,我们可以即通过事件句柄返回值来实现,又考虑事件属性。例如 下面代码,取消滚轮事件的默认动作。
functiondisabledMouseWheel() { if(document.addEventListener) { document.addEventListener('DOMMouseScroll', scrollFunc, false); }//W3C window.onmousewheel = document.onmousewheel = scrollFunc;//IE/Opera/Chrome } functionscrollFunc(evt) { evt = evt || window.event; if(evt.preventDefault) { // Firefox evt.preventDefault(); evt.stopPropagation(); } else{ // IE evt.cancelBubble=true; evt.returnValue = false; } returnfalse; } window.onload=disabledMouseWheel;
在事件句柄中,除了完成自己定义的动作之外,想要阻止默认动作,可以在句柄最后加上阻止默认动作的语句就OK了。