我一直在試圖理解爲什麼有時IE8不喜歡PreventDefault,爲什麼有時它似乎是好的(沒有錯誤)。從我讀過的東西,包括在這裏,在這裏是jquery中的事件是正常化的,所以preventDefault將始終存在與jQuery事件。然而,常規javascript事件綁定是當ie8需要以下解決方法時:JQuery PreventDefault和IE8澄清
event.preventDefault ? event.preventDefault() : event.returnValue = false
這是正確的嗎?
所以,如果你正在使用jQuery。點擊.bind。對等來處理事件,然後的preventDefault不會造成IE8的錯誤,如:
$('a').on('click', function(e) {
e.preventDefault(); //no need for e.preventDefault ? e.preventDefault() : e.returnValue = false as jquery event?
//code
});
但是,如果它是一個規則的Javascript事件,例如onclick然後解決方法是需要的?
希望是有道理的。
謝謝
聽起來正確 – adeneo
jQuery事件處理程序中的'e'參數不是本機事件對象,而是由jQuery創建的對象。 jQuery事件對象上的'.preventDefault'不是本地的'.preventDefault',而是像第一個例子那樣的包裝器。 –
僅供參考,如果您不支持IE7或更低版本,則可以將'.preventDefault()'方法修補到'Event.prototype'中(如果它缺失)。 –