原生事件绑定与解绑和jQuery的事件绑定与解绑详解

原生js绑定单个事件与解绑

<body>
    <input type="button" id="btn" value="盘他">
    <input type="button" id="rm" value="移除">
</body>
<script>
    /* 使用 onclick 作为点击事件 后面的事件会覆盖前面的事件 执行alert(2)  无兼容性问题 */
    document.getElementById('btn').onclick = function(){
        alert('1')
    }
    document.getElementById('btn').onclick = function(){
        alert('2')
    }
    /* 解除绑定事件 onclick = null */
    document.getElementById('rm').onclick = function(){
        document.getElementById('btn').onclick = null
    }
</script>

原生js绑定多个事件与解绑

addEventListener(type,fn,useCapture)   useCapture:事件处理机制概念

<body>
    <input type="button" id="btn" value="盘他">
    <input type="button" id="rm" value="移除">
</body>
<script>
    /* 使用addEventListener(type,fn,useCapture)绑定多个事件 事件类型无需带on
     IE8及以下有兼容性 使用attachEvent(type,fn)代替 事件类型需要带on */
    function f1(){
        alert('1')
    }
    document.getElementById('btn').addEventListener('click',f1,false)
    document.getElementById('btn').addEventListener('click',function(){
        alert('2')
    },false)
    document.getElementById('rm').addEventListener('click',function(){
        /* 使用removeEventListener移除事件 */
        document.getElementById('btn').removeEventListener('click',f1,false)
    },false)
    /* IE8及以下 */
    document.getElementById('btn').attachEvent('onclick',f1)
    document.getElementById('rm').attachEvent('onclick',function(){
        document.getElementById('btn').detachEvent('onclick',f1)
    })
</script>

jQuery绑定多个或单个事件与解绑

<body>
    <input type="button" id="btn" value="盘他">
    <input type="button" id="rm" value="移除">
</body>
<script>
/* 使用jquery的方式on(type,selector,fn)绑定多个事件 无兼容性问题 
   selector:用于委托事件 */
    $('#btn').on('click',function(){
        alert('1')
    })
     /* off 移除事件 */
    $('#rm').on('click',function(){
        $('#btn').off('click')
    })
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值