脑痛。
我有一个计时器可以动态地向表中添加行。我想要一个事件触发 当用户点击其中一个动态添加的行时。
我用“PortletTableUseButton”类标记每个 for 并使用 .on("click") 但它不起作用。
$('.PortletTableUseButton').on("click", function () {
alert($(this));
});
setInterval(function () { addRow(); }, 2000);
var counter = 2042;
function addRow() {
counter++;
var myRow = "<tr class='PortletTableUseButton'><td>BLOCK-" + counter + "</td><td>Location A</td><td >Use</td></tr>";
$("#Portlet #content tr:last").after(myRow);
}
<div id="Portlet" style="position:absolute; top:500px;left:500px; height:200px;">
<div id="content" style="height:80%;">
<table id="PortletTable">
<tr>
<td>File Name</td>
<td>Location</td>
<td>Action</td>
</tr>
</table>
</div>
</div>
最佳答案
您没有正确使用事件委托(delegate)。试试这个:
$(document).on('click', '.PortletTableUseButton', function () { ... });
http://learn.jquery.com/events/event-delegation/
或者,每次添加一行时都运行点击函数。
关于javascript - 动态行添加到表 : adding click event doesn't trigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009768/