本文主要是介绍stopPropagation() 和 preventDefault() 事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
e.stopPropagation(),可阻止冒泡和捕捉行为
e.preventDefault()是阻止当前元素默认行为的
return false 一般可以用来替代 stopPropagation() 和 preventDefault()
冒泡事件:从内到外;
捕捉事件:从外到内;
在js中给元素添加事件如下:
document.getElementByIdx_x(id).addEventListener('click',function() {},false);
addEventListener(),这个函数最后一个参数若为false,监听捕捉;若为true,即为冒泡。默认是冒泡
函数stopPropagation(),可阻止冒泡和捕捉行为,propagation单词有传播的意思,stopPropagation停止传播
函数preventDefault()是阻止当前元素默认行为的,比如a标签中绑定事件click,并且还有href链接,在click中写上event.preventDefault()可以阻止href跳转。再如,提交表单中,如果不符合条件,加上event.preventDefault(),可阻止其提交发生。***event为函数中的形参***
当然,在函数中使用return false,也可以阻止其默认行为。
上述两个函数,并不是所有浏览器都兼容,可以使用jQuery封装好的函数,兼容所有浏览器。
return false
退出执行, return false 之后的所有触发事件和动作都不会被执行. 有时候 return false 可以用来替代 stopPropagation() 和 preventDefault(), 比如我们上面新窗口打开链接的例子。
可以认为[可能会有错]return false = stopPropagation() + preventDefault(),但是return false 不但阻止事件, 还可以返回对象, 跳出循环等...
这篇关于stopPropagation() 和 preventDefault() 事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!