close

preventDefault是避免原本的動作執行

http://www.w3school.com.cn/htmldom/event_preventdefault.asp

--

定义和用法

取消事件的默认动作。

语法

event.preventDefault()

说明

该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

--

延伸: 與return false的差別

http://heikezhi.com/2011/04/18/jquery-events-stop-misusing-return-false/ 

jQuery事件处理: 别再乱用“return false”了

”return false“到底做了什么?

当你每次调用”return false“的时候,它实际上做了3件事情:

  • event.preventDefault();
  • event.stopPropagation();
  • 停止回调函数执行并立即返回。

“等等”,你叫了起来!我只是想让浏览器停止继续执行默认行为而已,我不需要它去做另外2件事。

--

這邊也有提到: http://51hired.com/questions/597/e.preventDefault();%20%E5%92%8Creturn%20false%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88

vote up0vote downstar
$(object).click(function(e) {
   
...
   
return false;
});

$(object).click(function(e) {
    e
.preventDefault();
   
...
});

感觉两者的效果一样,没啥区别。。

 

1 个答复

vote up0vote downcheck
return false;

等效于调用e.preventDefault();以及e.stopPropagation();,所以区别在于,return false除了阻止默认行为之外,还会阻止event flow

如果手上有一份jquery1.3.2的话,可查看其中有如下代码:

if ( ret === false ) {
   
event.preventDefault();
   
event.stopPropagation();
}
链接

--

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dizzy03 的頭像
    dizzy03

    碎碎念

    dizzy03 發表在 痞客邦 留言(0) 人氣()