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

JQuery Ajax更新的Div内按钮点击无响应问题求助

解决动态生成按钮点击无响应的问题

嘿,我一眼就看出问题所在啦——你那些带.modif_prst类的按钮是通过AJAX动态加载到页面的,而你一开始用的$(".modif_prst").click()方法,只会给页面加载时就已经存在的元素绑定点击事件,动态生成的元素根本没享受到这个绑定,所以点击自然没反应。

解决方案:使用事件委托

我们可以把事件绑定到一个页面加载时就存在的父元素上(比如你的#upd_pr容器,或者更上层的document),然后委托它处理子元素的点击事件。这样不管子元素是一开始就有的,还是后来动态添加的,事件都能被触发。

修改你的jQuery代码里的点击事件部分:

// 替换原来的$(".modif_prst").click(...)
$("#upd_pr").on('click', '.modif_prst', function () {
    const choix = confirm("voulez vous vraiment sauvegarder les modifications");
    if (choix) 
    {
        // 用closest('tr')代替parent().parent(),DOM结构变动时更健壮
        const $row = $(this).closest('tr');
        const idbn = $row.find('td:eq(0)').html();
        const idprs = $row.find('td:eq(1)').html();
        const trf = $row.find('td:eq(3)').html();
        const opttr = $row.find('td:eq(4)').html();
        
        console.log(idbn);
        console.log(idprs);
        console.log(trf);
        console.log(opttr);
    }
});

额外小建议

  1. 优先用closest('tr')代替连续的parent().parent():如果以后你的DOM结构有小改动(比如按钮外面多套了一层标签),closest依然能准确找到对应的行,而parent()链式调用就会失效,稳定性更强。
  2. 变量声明尽量用const或let代替无关键字声明,避免全局变量污染,代码也更规范。

这样修改后,你点击动态生成的"Modifier"按钮应该就能正常触发事件,看到控制台的输出啦!

内容的提问来源于stack exchange,提问作者DINA TAKLIT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:52:38