我有一个函数,我可以获取一些数据,并将其插入到表的一行中。
然后我在该行上设置了一个click事件,这样当它被点击时,它会导航到我的数据对象中指定的URL:
$(data).each(function(i, item) {
var row = $("<tr></tr>");
tbody.append(row);
// Add some cells into the row...
var firstNameCol = $("<td>" + item.FirstName + "</td>");
row.append(firstNameCol);
// Set up click handler
row.click(function() {
window.location.href = item.DetailsURL;
});
});
现在这段代码运行正常,但它让我意识到我不确定事件是如何工作的。
该函数包含对item
的引用,{{1}}是我的for循环项的本地变量。当用户点击该行时,它如何知道它正在查看哪个项目?是否在注册click函数时以某种方式缓存?
其次,这种方法真的很糟糕吗?我是否强迫它在幕后做大量工作?
修改添加了更多代码...