Jquery动态生成标签,绑定click,用户点击没反应

<div class="container"> </div>

<script type="text/javascript" th:inline="javascript">
    $('<button>点击我</button>').click(function() {  
        alert('按钮被点击了!'); // 这不会工作,因为按钮在绑定时还未添加到DOM中  
    });  
    $('#container').append($('<button>点击我</button>')); // 这里的按钮是新的,之前绑定的事件不会应用到它上
</script>

上边的代码   点击button没有反应。

因为你尝试在元素实际添加到 DOM 之前绑定了事件。jQuery 的 .on() 方法(或其简写形式 .click())通常不会直接绑定到尚未添加到 DOM 的元素上。

为了解决这个问题,你可以使用事件委托(Event Delegation)来绑定事件。这意味着你将事件处理程序绑定到一个父元素(或更高层级的元素)上,然后指定只有当事件发生在特定子元素(如你的 <button>)上时,才执行该处理程序。

调整后代码

 $(document).ready(function() { 
    // 假设你的按钮将被添加到某个ID为'container'的元素内  
    $('#container').on('click', 'button', function() {  
         // 这里是按钮的点击事件处理函数  
        alert('按钮被点击了!');  
    });  
  
    // 然后,在某个时候,你动态地添加了一个按钮  
    $('#container').append('<button>点击我</button>');
)}

注:id="container" 是在html里静态的 不是动态生成的 ;

        'button' 是container里的button按钮 也可以换成 Id或者class。

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值