2010-11-24 181 views
0

我搜索在計算器這個問題發佈之前,但任何職位開創的似乎爲我工作:(Javascript preventDefault不工作,也不返回false;

我有這樣的:

function addEvent(elm, evType, fn) { 
    if (elm.addEventListener) { 
     elm.addEventListener(evType, fn, false); 
     return true; 
    } 
    else if (elm.attachEvent) { 
     var r = elm.attachEvent('on' + evType, fn); 
     return r; 
    } 
    else { 
     elm['on' + evType] = fn; 
    } 
} 

和我這樣做:

var el = document.getElementById('myLink'); 

addEvent(el, "click", function(event){ 
     alert('testing'); 
     if(event.preventDefault){ 
      event.preventDefault; 
     } 
     if (event.stopPropagation) { 
      event.stopPropagation(); 
     } 
     return false; 
    }); 

其中myLink的是..

<a href="http://www.google.com" id="myLink">Click me</a> 

但是當我點擊鏈接去,它不會停止默認的事件動作...我已經測試過IE,FF和Chrome,沒有結果...

有什麼想法嗎?謝謝...

回答

5

有一對夫婦在代碼中的錯誤:

addEvent(el, "click", function(event){ // event will be undefined in IE 
    event = event || window.event; // fallback to window.event in IE 

    alert('testing'); 
    if(event.preventDefault){ 
     event.preventDefault(); //() was missing here 
    } 
    if (event.stopPropagation) { 
     event.stopPropagation(); 
    } 
    return false; 
}); 
+0

是的,現在的工作!愚蠢的我..沒有看到失蹤()...對不起,但非常感謝你! – 2010-11-24 01:37:28