stopPropagation阻止事件冒泡事件链。
preventDefault阻止浏览器对该事件执行默认操作。
例子
preventDefault
$("#but").click(function (event) { event.preventDefault()})$("#foo").click(function () { alert("parent click event fired!")})<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><div id="foo"> <button id="but">button</button></div>停止传播
$("#but").click(function (event) { event.stopPropagation()})$("#foo").click(function () { alert("parent click event fired!")})<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><div id="foo"> <button id="but">button</button></div>使用
stopPropagation,只有
button的点击处理程序会被调用,而
div的点击处理程序永远不会触发。
就像您使用一样
preventDefault,只有浏览器的默认操作被停止,但div的单击处理程序仍然会触发。
以下是有关MDN中DOM事件属性和方法的一些文档:
event.cancelBubble
event.preventDefault()
event.returnValue
event.stopPropagation()
对于IE9和FF,您可以只使用preventDefault和stopPropagation。
为了支持IE8和更低版本,请替换
stopPropagation为
cancelBubble和替换
preventDefault为
returnValue



