html动态委托click不起作用,Click事件不适用于动态生成的元素

这篇博客探讨了如何在jQuery中处理动态添加元素的事件。文章介绍了直接绑定和委托绑定的区别,强调了使用`on()`方法进行事件委托的重要性,以便能够响应后续添加到DOM的元素。示例代码展示了如何使用`on()`处理点击事件,以及在旧版jQuery中使用`live()`和`delegate()`的替代方法。
摘要由CSDN通过智能技术生成

click()您正在使用的绑定称为“直接”绑定,它只将处理程序附加到已存在的元素。它不会受到将来创建的元素的约束。为此,您必须使用创建“委托”绑定on()。委托事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件。

这是你要找的东西:

var counter = 0;

$("button").click(function() {

$("h2").append("

click me " + (++counter) + "

")

});

// With on():

$("h2").on("click", "p.test", function(){

alert($(this).text());

});

generate new element

以上适用于使用jQuery 1.7+版本的用户。如果您使用的是旧版本,请参阅下面的上一个答案。

上一个答案:$("button").click(function(){

$("h2").html("

click me

")});   $(".test").live('click', function(){

alert('you clicked me!');});

为我工作。用jsFiddle 试了一下。

或者有一种新的方式delegate():$("h2").delegate("p", "click", function(){

alert('you clicked me again!');});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值