我见过类似的问题,HERE并尝试过,但我似乎无法让它发挥作用。 这是我动态生成表行的代码。
for (var contribution = 0; contribution < candidate.contributions.length - 1; contribution++) {
var id = candidate.contributions[contribution].donor_id;
var uid = candidate.contributions[contribution].user_id;
$("#history-table").append(
"<tr onclick='" + parent.viewEngine.pageChange('public-profile', 1, id, uid) + ";>" +
"<td class='img-cell'>" +
"<img class='profile-avatar-small' src='/uploads/profile-pictures/" +
candidate.contributions[contribution].image + "' alt='' /></td><td class=''>" +
"<h2>" + candidate.contributions[contribution].firstname +
" " + candidate.contributions[contribution].lastname + "</h2></a><br/><br/>" +
"<span class='contribution-description'>" + candidate.contributions[contribution].contribution_description + "</span></td>" +
"<td><h3>$" + formatCurrency(candidate.contributions[contribution].contribution_amount) + "</h3></td></tr>");
}
这仍然会在页面加载后立即执行单击事件,这不是所需的行为。我需要能够单击 tr 来执行单击事件。
最佳答案
将整个内容作为字符串传递:
"<tr onclick='parent.viewEngine.pageChange(\'public-profile\', 1, " + id + ", " + uid + ");>" // + (...)
但是,当您使用 jQuery 时,您应该将点击处理程序附加 .on()
.
关于javascript - jQuery:尝试在页面加载时将函数 Hook 到 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661267/