Почему событие «onmouseover» использует «return true» для предотвращения поведения по умолчанию? - PullRequest
7 голосов
/ 02 февраля 2009

Я искал это в течение некоторого времени, но не получил никакого объяснения.

Для «onclick» и других событий в javascript, обработчик событий, возвращающий false , означает «предотвращение действия по умолчанию». Однако есть одно исключение для «onmouseover». Для «onmouseover» возвращение true означает «предотвратить действие по умолчанию».

Почему существует такой странный исключительный случай "onmouseover"?

Ответы [ 3 ]

6 голосов
/ 02 февраля 2009

Вместо использования return false / true для предотвращения поведения события по умолчанию, используйте метод / атрибут по умолчанию для объекта события:

elem.onmouseover = function(e) {
    if (!e) var e = window.event; // IE
    if(e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false; // IE
    }
}
3 голосов
/ 02 февраля 2009

Насколько я знаю, возвращение true, чтобы предотвратить отображение ссылки в строке состояния, является специфической (неправильной) функцией IE. И попытка понять, почему IE делает вещи так, как он это делает, часто оказывается безнадежным делом - просто смирись с этим ...

2 голосов
/ 02 февраля 2009

Кто знает, почему на самом деле. Просто так оно и есть: вы возвращаете TRUE из onmouseover, чтобы предотвратить появление URL-адреса в строке состояния, что в действительности является поведением по умолчанию.

...