preventDefault()

preventDefault方法取消浏览器对当前事件的默认行为,比如点击链接后,浏览器跳转到指定页面,或者按一下空格键,页面向下滚动一段距离。该方法生效的前提是,事件的cancelable属性为true,如果为false,则调用该方法没有任何效果。
该方法不会阻止事件的进一步传播(stopPropagation方法可用于这个目的)。只要在事件的传播过程中(捕获阶段、目标阶段、冒泡阶段皆可),使用了preventDefault方法,该事件的默认方法就不会执行。
该方法是否能作用取决于,节点+方法,例如

submit/a+click
input/button+keypreaa
div+scroll
除键盘鼠标事件外,还有其他如进度事件,拖拉时间,触摸事件,文档事件,以后遇到的时候个别分析

下面附上遇到的preventDefault用法问题

背景:在backbone开发的基础上添加一个Tab NEW(非backbone)
表现: NEW 的相邻一次tab A不能A->NEW后NEW->A
作死的新加入代码

(‘#promote-tab’).click(function(e) {  
    e.preventDefault();
(this).tab(‘show’);
});

问题在于preventDefault()阻止了tab的index的调整,所以tab A坚持认为A一直都是A,从未改变。
可能看官会问, 为什么用e.preventDefault()?懒惰的粘过来JS组件代码作死了,根源还是对他的了解不够,反省后注意。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值