javascript - 动态行添加到表 : adding click event doesn't trigger

标签 javascript jquery

脑痛。

我有一个计时器可以动态地向表中添加行。我想要一个事件触发 当用户点击其中一个动态添加的行时。

我用“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/

相关文章:

javascript - 使用javascript滚动时,如何使导航栏中的当前书签菜单自动突出显示?

javascript - 使用innerHTML写入页面但它很快就消失了

javascript - 如何将选择元素中的选项与子字符串匹配?

javascript - 如何使用 jquery 中的其他下拉菜单设置下拉文本和值

javascript - 如何使用 PHP 检索 MySQL 中的表行并使用 Javascript 显示它?

javascript - 替换后如何显示原来的元素?

javascript - Kendo Grid 相当于 onEditComplete

jQuery。按字母顺序排列姓名列表

javascript - 使用不显眼的 JavaScript 验证表单

javascript - 插入的 HTML 不响应 jQuery