事件的冒泡是自下而上的触发事件,例如
<script>window.onload = function(){var li = document.getElementsByTagName("li");var ul = document.getElementsByTagName("ul")[0];document.body.onclick = function(){alert("body被点击了")}ul.onclick = function(){alert("ul被点击了")}for(var i = 0;i<=li.length;i++){li[i].onclick = function (){alert("li被点击了")}}}</script><body><h2>hello</h2><ul><li>1234</li><li>abcd</li><li>ABCD</li></ul>
</body>
当我们点击li时,窗口不仅仅只弹出li被点击了的提示框,而是依次弹出li被点击了,ul被点击了,body被点击了,
但是我们仅仅只想让他弹出一个li被点击了,该怎么办?
只用添加一行属性:event.cancelBubble = true;
<script>window.onload = function(){var li = document.getElementsByTagName("li");var ul = document.getElementsByTagName("ul")[0];document.body.onclick = function(){alert("body被点击了")}ul.onclick = function(){alert("ul被点击了")}for(var i = 0;i<=li.length;i++){li[i].onclick = function (){alert("li被点击了");event.cancelBubble = true;}}}</script>
这样,就能达到我们需要的效果了。