preventDefault()无法正常工作

时间:2012-11-02 09:08:31

标签: javascript events

<script>
function confirmDel(evt)
{var con =false;
    con=confirm('Do you really want to remove this purchase?.');
    if(con)
    {
        return true;
    }else
    {
        event.preventDefault();
    }
}
</script>

我的HTML

 <a title="View Log" onclick="return confirmDel(this);" href="index.php?mod=tech_support">delete</a>

上面的代码在Chrome浏览器中工作正常但在Mozilla中失败。 但是当我使用return false而不是event.preventDefault();时,它在两者中都可以正常工作。 谁能解释为什么会发生这种情况

1 个答案:

答案 0 :(得分:3)

问题在于event.preventDefault()。您传递的事件是evt,而不是event。你必须使用:

evt.preventDefault();

event.preventDefault()适用于Chrome,因为它模仿旧的IE行为以实现向后兼容性(就像它也有innerText)。

在旧IE中,事件对象为window.event。因此,调用event.preventDefault()会调用全局事件对象,该对象可在Chrome和IE中运行,但不能调用未实现此非标准行为的Firefox。