关于jQuery延时绑定

#背景 今天在做一个项目的时候,遇到有一个select框是ajax加载进来的,而且我需要去监听这个select的change事件,一开始我是这样监听的

$('select').change(function(e){
//处理逻辑
})

但是发现这样是行不通的,因为这个绑定在这个select加载进来就已经做了绑定了,对于后面加载的元素不起作用,后面就去查,发现了这个方法

###.live()

  $('a', $('#container')[0]).live(...);

Query把alert函数绑定到$(document)元素上,并使用’click’和’a’作为参数。任何时候只要有事件冒泡到document节点上,它就查看该事件是否是一个click事件,以及该事件的目标元素与’a’这一CSS选择器是否匹配,如果都是的话,则执行函数。

上面这一段是在网上找了的说明,但是,我使用的时候,却发现.

$(...).live is not a function

这句话的意思是jQuery没有live这个方法?

后面发现在jQuery1.7以后已经建议使用live这个方法了,可以使用on来替代

$(document).on('change',"select",function() {}

或者使用

$('#loadType').delegate('select',"change",function() {

上面这两句的意思就是,监听前面的$(xx)里面的所有select元素,如果有发生change这个事件,就执行function,无论是不是ajax加载的

部分资料是参考了这篇文章

http://kb.cnblogs.com/page/94469/

转载于:https://my.oschina.net/gcdong/blog/1094034

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值