个性化阅读
专注于IT技术分析

event.preventDefault() vs. return false这两种调用方式有什么区别?

点击下载

event.preventDefault() vs. return false这两种调用方式有什么区别?当我想在触发某个事件之后阻止其他事件处理程序执行时,可以使用以下两种技术之一。我在示例中使用jQuery,但这也适用于JS。

1、event.preventDefault()

$('a').click(function (e) {
    // 自定义处理
    e.preventDefault();
});

2、return false

$('a').click(function (e) {
    // 自定义处理
    return false;
});

这两种停止事件传播的方法有什么显著区别吗?在我看来return false;更简单、更短,而且可能更不容易出错。使用preventDefault方法,你必须记住正确的大小写、括号等。此外,我还必须在callback中定义第一个参数,以便能够调用该方法。可能也应该避免这样做,而使用preventDefault是有原因的吧?有什么更好的办法?

问题解释:

在jQuery事件处理程序中返回false实际上等同于同时调用e.preventDefault,e在传递的jQuery.Event上停止传播。事件对象e.preventDefault()将防止发生默认事件,e.stopPropagation()将防止事件冒泡,return false将同时执行这两种操作。请注意,这种行为与普通(非jquery)事件处理程序不同,在普通事件处理程序中,return false不能阻止事件冒泡。

赞(0)
未经允许不得转载:srcmini » event.preventDefault() vs. return false这两种调用方式有什么区别?

评论 抢沙发

评论前必须登录!