jquery on()绑定事件无效

(1)用bind或者直接给元素加事件(例如click)这种的是对于页面初始化就有的元素

(2)对于后面动态生成的元素无效,例如append(某动态生成元素),这种用以上的方法无效

为了使动态生成的元素能绑定事件,我网上查了一番,听说on可以动态绑定事件,我试了一下没有效果,纠结了很久,最终发现原因。

jquery使用on绑定事件到动态生成的元素上时,不能对动态生成的对象操作,需要从其父节点追溯到本身。

下面是js:

//有效,追溯到本身

$('#centerUlList').on("click","li",function(){

$('input[name="godate"]').val($(this).attr("date"));

searchform.action="searchsimple.action";

searchform.submit();

});

//无效

$('#centerUlList li').on("click",function(){

$('input[name="godate"]').val($(this).attr("date"));

searchform.action="searchsimple.action";

searchform.submit();

});

综上动态生成的元素绑定事件用on要注意 追溯到元素本身,另外一点on的性能高于live(),bind(),delegate()等方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值