function fn(e){ var event = e || window.event; }
FireFox
里的Event
跟IE
里的不一样,IE
里的是全局变量,随时可用。FireFox
里的要用参数引导才能用,是运行时的临时变量
在IE/Opera
中是window.event
,在FireFox
中是event
。而事件的对象,在IE
中是window.event.srcElement
,在Firefox中是event.target
,Opera
中二者均可用浏览器
W3C
的方法是e.stopPropagation()
,IE
则是使用e.cancelBubble = true
stopPropagation
是事件对象Event
的一个方法,做用是阻止目标元素的冒泡事件
,可是不会阻止默认行为
什么是冒泡事件?如在一个按钮是绑定一个click
事件,那么click
事件会依次在它的父级元素中被触发,stopPropagation
就是阻止目标元素的事件冒泡到父级元素
了解更多请点这:理解DOM中的事件流
阻止事件冒泡兼容:dom
function stopPropagation(e) { var e = e || window.event; if ( e && e.stopPropagation ){ e.stopPropagation(); }else{ e.cancelBubble = true; } }
W3C
的方法是e.preventDefault()
,IE
则是使用e.returnValue = false
preventDefault
是事件对象Event
的一个方法,做用是取消一个目标元素的默认行为。若是元素没有默认行为,调用无效。什么元素有默认行为呢?如连接<a href="xxx">点我</a>
,提交按钮<input type=”submit”>
等code
return false:JS
的return false
只会阻止默认行为,而jQuery
则既阻止默认行为又防止对象冒泡
阻止浏览器默认行为兼容:对象
function stopDefault(e) { var e = e || window.event; if (e && e.preventDefault){ e.preventDefault(); }else{ e.returnValue = false; } return false; }