7

我一直在寻找这个,但没有任何解释。

对于 javascript 中的“onclick”和其他事件,返回false的事件处理程序意味着“阻止默认操作”。但是,“onmouseover”有一个例外。对于“onmouseover”,返回true表示“阻止默认操作”。

为什么“onmouseover”会有这样一个奇怪的例外情况?

4

3 回答 3

6

不要使用 return false / true来防止默认事件行为,而是使用事件对象的默认方法/属性:

elem.onmouseover = function(e) {
    if (!e) var e = window.event; // IE
    if(e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false; // IE
    }
}
于 2009-02-02T05:43:39.013 回答
3

据我所知,返回true以防止链接的 url 显示在状态栏中是 IE 特定的(错误)功能。试图理解为什么 IE 以它的方式做事往往是一个失败的原因 - 只是忍受它......

于 2009-02-02T10:52:13.977 回答
2

谁知道为什么真的。就是这样:您从 onmouseover 返回 TRUE 以防止 url 出现在状态栏中,这确实是默认行为。

于 2009-02-02T05:48:26.773 回答