当前位置: 代码迷 >> 综合 >> JavaScript-事件的冒泡与阻止
  详细解决方案

JavaScript-事件的冒泡与阻止

热度:73   发布时间:2023-10-25 03:07:27.0

事件的冒泡是自下而上的触发事件,例如

    <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>

这样,就能达到我们需要的效果了。

  相关解决方案