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; }