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

Intraweb程序重新填充表格后行选中高亮JS代码失效问题求助

Intraweb程序重新填充表格后行选中高亮JS代码失效问题求助

嗨,我来帮你分析下这个问题哈!

你遇到的这个情况太常见了——问题出在你绑定事件的方式上。你现在用的$('#Posten td').click(...)是直接给页面加载时已经存在的td元素绑定点击事件,但当你重新填充表格的时候,原来的那些td和tr元素都被新生成的DOM节点替换掉了,这些新节点根本没被绑定点击事件,自然就触发不了高亮逻辑了。

给你个简单的解决办法,换成jQuery的事件委托来绑定事件就行。原理就是把点击事件绑定到一个不会被替换的父容器上(比如你的#Posten容器),让它来监听子元素的点击,不管表格被刷新多少次,新生成的元素都能触发事件。

修改后的JS代码如下:

$('#Posten').on('click', 'td', function () {
  var k = $(this);
  k.closest("table").find("tr.Kies").removeClass("Kies");
  k.closest("tr").addClass("Kies");

  ajaxCall("LeesRegel", "Params=" + k.closest("tr").attr('ID'))
});

简单说下这个写法的逻辑:我们把点击事件绑定到#Posten这个稳定的父容器上,当点击事件从子元素td冒泡到这里时,jQuery会检查触发事件的目标是不是我们指定的td,如果是就执行后面的处理函数。这样不管你重新生成多少次表格,新的td元素的点击都能被正确捕获到。

另外你可以顺便确认下,重新填充表格的时候,新生成的tr有没有正确设置ID属性,确保ajaxCall的参数也能正常传递哦。

备注:内容来源于stack exchange,提问作者jvm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 20:20:31