javascript - 基本的 onclick 事件问题

标签 javascript

我有一个从数组填充的动态表。

在构建表时,我在一个循环中有以下内容:

var tdRecord = trRecord.insertCell(trRow.cells.length);
var tdRecordId = dataArray[j][0];
tdRecord.onclick = function() { alert(tdRecordId); }

问题是 alert 只会提醒数组中最后设置的 tdRecordId。如果我点击任何其他 td 行,它们都会提示相同的数字。

有人知道我该如何解决这个问题吗?

最佳答案

这应该有效:

(function( id ) {

    tdRecord.onclick = function() {
        alert( id );
    };

}( tdRecordID ));

您似乎在循环内运行您的代码。在这种情况下,所有点击处理程序都将指向相同的 tdRecordId 值。如果你想捕获当前迭代的值,你必须使用一个函数包装器来为你做这件事。

关于javascript - 基本的 onclick 事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135674/

相关文章:

javascript - jquery datepicker 多个输入

javascript - 删除固定导航菜单弹跳 - jQuery?

javascript - Node中通过async/await从redis同步获取

javascript - 尝试确定如何监视或附加异步函数的成功调用

javascript - 我想通过从 javascript 函数传递参数来调用 scriplet 中的方法,该函数在 html 中单击按钮时调用

javascript - JS判断String是否有电话号码

javascript - 如何在 mvc 4 中将 javascript 变量放入 View 中?

javascript - 找到最近的 href 属性的最佳方法?

javascript - 使用 <an> </a> 标签 onclick 在状态之间导航

javascript - JQuery 类添加/删除不起作用(使用未知的委托(delegate))