js停止冒泡和阻止浏览器默认行为

js停止冒泡
  • W3C/ jquery阻止冒泡的方式:
    event.stopPropagation()
  • IE:
    event.cancelBubble=true
  • 兼容性写法
    window.event ? window.event.cancelBubble=true : event.stopPropagation;

stopPropagation()/cancelBubble=true 可以阻止事件冒泡,但不会阻止浏览器的默认行为.

例子

  <div id="div" onclick="alert('div')">
    <ul onclick="alert('ul')">
      <li>test</li>
    </ul>
  </div>
  <script type="text/javascript">
    document.getElementsByTagName('li')[0].onclick = function (event) {
      alert('li')
      // 阻止冒泡
      var event = event || window.event;
      event ? event.cancelBubble=true : event.stopPropagation();
    }
  </script>
js阻止默认行为
  • w3c / jquery阻止默认行为 :
  • event.preventDefault()
  • IE:
  • evevt.returnValue=false;
  • 兼容性写法
    event.preventDefault() ? event.preventDefault() : evevt.returnValue=false;

例子

  <a href="http://www.baidu.com" id="test">www.baidu.com</a>
  <script type="text/javascript">
    var baidu = document.getElementById('test');
    baidu.onclick = function (event) {
      var event = event || window.event;
      event.preventDefault ? event.preventDefault() : event.returnValue=false;
    }
  </script>
return false
  • js事件中return false只会组织默认行为
  • jquery事件中return false可以阻止冒泡和默认行为
 <div id="div" onclick="alert('div')">
    <ul onclick="alert('ul')">
      <li id="li_a" onclick="alert('li_a')">
        <a href="http://www.baidu.com" id="test">baidu</a>
      </li>
    </ul>
  </div>
  <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js" charset="utf-8"></script>
  <script type="text/javascript">
  //js
    var a = document.getElementById('test');
    a.onclick = function () {
      return false; //阻止默认行为
    }
  //jquery
    $('#test').click(function () {
      return false; //阻止冒泡和默认行为
    })
  </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值