You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery 动态添加 class 后绑定的点击事件不生效,该如何解决?

问题根源

你使用的$('.alert').click()是直接绑定事件的写法,只会在代码首次执行时,给当前DOM中已经存在、且带有alert类的元素绑定点击事件。Button C的alert类是点击Button B之后才动态添加的,初始绑定时不满足匹配条件,因此没有绑定对应的事件处理函数,点击自然不会触发弹窗。

解决方案

使用jQuery的事件委托机制,将事件绑定到页面中始终存在的父级元素上(可以是document,也可以是这些按钮的上层静态父容器,后者性能更优),再指定目标选择器即可适配动态新增/修改类的元素。

修改后的JS代码如下:

// 事件委托到document,匹配所有带有alert类的元素,包括后续动态添加的
$(document).on('click', '.alert', function(){
  alert("alert");
});

$('.secondButton').click(function() {
  $('.thirdButton').addClass('alert');
});
说明

事件委托依赖事件冒泡机制:点击页面元素时,事件会逐层向上冒泡到绑定了监听的父元素,父元素会自动校验触发事件的目标是否匹配指定的选择器,匹配成功就执行对应的处理逻辑。你使用的jQuery 1.7.1版本已经支持on方法的委托写法,无需调整依赖版本。

内容的提问来源于stack exchange,提问作者Biraj Dahal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:06:03