jquery 绑定事件方式(可能出错处)

本文介绍了jQuery中五种常见的事件绑定方式:直接在标签上绑定、事件名绑定、使用bind()绑定、live/on动态绑定及delegate/on动态绑定。通过源码解析了每种绑定方式的特点及其适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jquery 绑定事件的方式?

- 其实大体可以分为能不能绑定动态加载出来的节点事件来分类
1.直接在标签上绑定
<button onclick='btn()'></button>
2. 事件名绑定
<button id='btn'></button>
<script>
$("#btn").click(function(){
 console.log();
})
</script>
3. bind()绑定,与直接事件绑定类似(无法动态绑定,)

源码:
bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
}

4. live,on动态绑定

jquery 1.7版本以前使用live 动态绑定
jquery 1.7版本以后使用on 动态绑定

5.live,delegate,on动态绑定

先看这三者的源码:
live:

live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
}

delegate:

delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
}

on:

on(type,[selector],[data],fn)
  • 首先是Live:
    绑定的是this.context,
$('#myol li').context; //document
$('#myol li','#myol').context; //document

大多数情况下this.context 绑定的document,
故可推断事件的委托交给了doucment。

  • 然后就是delegate,
$("#btn").delegate('li','click',function(){})

相当于返回的时候调用了一次on

  • 最后介绍on ,
    on 经过测试,事件委托并不是交给document,而是绑定到父元素上,如果不绑定到父元素上的时候,事件绑定会失效。
$('#father').on('click','#son',function(){})

— 请大家谨慎使用,最好使用on绑定,而且把事件委托交给父元素.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿冰介

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值