Javascript предотвращает дефолт не работает, и не возвращает ложь; - PullRequest
0 голосов
/ 24 ноября 2010

Я искал этот вопрос в stackoverflow, прежде чем публиковать его, но мне кажется, что любой из оснований сообщения работает для меня: (

У меня есть это:

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>

но когда я нажимаю ссылку de, это не останавливает действие события по умолчанию ... я тестировал на IE, FF и Chrome, без результата ...

Есть идеи, пожалуйста? спасибо ...

1 Ответ

5 голосов
/ 24 ноября 2010

В коде есть пара ошибок:

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