为什么“onmouseover”事件要使用“return true”来防止默认行为?

7

我已经寻找了一段时间,但没有找到任何解释。

在JavaScript中,“onclick”和其他事件中,事件处理程序返回false表示“防止默认操作”。然而,“onmouseover”有一个例外。对于“onmouseover”,返回true表示“防止默认操作”。

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

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
    }
}

3
据我所知,返回true以防止链接url显示在状态栏中是IE特有的(误导性)功能。试图理解IE为什么会这样做通常是徒劳无功的 - 只能接受它...

2
谁知道为什么。就是这样: 当你从onmouseover返回TRUE时,可以防止url出现在状态栏中,这实际上是默认行为。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接