javascript - Jquery click 不适用于通过 PHP 动态添加的表 tr

标签 javascript php jquery html-table

我正在从数据库获取数据并通过 php echo 将其显示在 HTML 上。现在我需要在 id breakrow 的特定 tr 上放置一个点击函数,但是这个点击功能不起作用。我正在使用.on按照文档中建议的功能动态添加内容。另外,我在控制台中也没有看到任何错误。 这是示例代码。 (当我将相同的代码直接添加到 html 页面中时,它按预期工作)

PHP 部分:

echo '<div class="container" id="container">
        <table class="gridtable" id="tableMain">
            <thead>
                <tr class="tableheader">
                  <th>customer</th>
                  <th>product</th>
                  <th>thedate</th>
                  <th>value</th>
                </tr>
            </thead>
            <tbody>
                <tr class="breakrow"><td>customer 01</td><td></td><td></td><td></td></tr>
                <tr class="datarow"><td>customer 01</td><td>product 01</td><td>30 10 2017</td><td>974.57</td></tr>
                <tr class="datarow"><td>customer 01</td><td>product 02</td><td>04 12 2017</td><td>634.50</td></tr>
                <tr class="datarow"><td>customer 01</td><td>product 03</td><td>30 10 2017</td><td>974.57</td></tr>
                <tr class="datarow"><td>customer 01</td><td>product 04</td><td>04 12 2017</td><td>634.50</td></tr>

                <tr class="breakrow"><td>customer 02</td><td></td><td></td><td></td></tr>
                <tr class="datarow"><td>customer 02</td><td>product 01</td><td>04 12 2017</td><td>634.50</td></tr>
                <tr class="datarow"><td>customer 02</td><td>product 02</td><td>30 10 2017</td><td>974.57</td></tr>


                <tr class="breakrow"><td>customer 03</td><td></td><td></td><td></td></tr>
                <tr class="datarow"><td>customer 03</td><td>product 01</td><td>30 10 2017</td><td>974.57</td></tr>
                <tr class="datarow"><td>customer 03</td><td>product 02</td><td>04 12 2017</td><td>634.50</td></tr>
                <tr class="datarow"><td>customer 03</td><td>product 03</td><td>30 10 2017</td><td>974.57</td></tr>

            </tbody>
        </table>
    </div>';

Jquery:

$( document ).ready(function() {

    $('#tableMain').on('click', 'tr.breakrow',function(){
        $(this).nextUntil('tr.breakrow').slideToggle(200);
    });
});

有人可以指导我如何解决这个问题吗?

最佳答案

使用ajax加载内容时,脚本需要绑定(bind)动态添加的内容,因此您可以使用以下脚本对动态加载的数据生效。

$(document).on('click', 'tr.breakrow', function(){
    $(this).nextUntil('tr.breakrow').slideToggle(200);
});

关于javascript - Jquery click 不适用于通过 PHP 动态添加的表 tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54216661/

相关文章:

javascript - 通过单击按钮发送重定向数组

javascript - 使用 jquery.each() 函数显示隐藏的 div

javascript - 为什么我的简单邮件 php 表单需要很长时间才能加载?

javascript - Bootstrap按钮插件与Vue复选框点击事件冲突

javascript - Angular 插值无法正常工作?

javascript - javascript触发对话框打开时如何使IE8/9提交输入类型="file"

php - 我正在使用 Laravel 5 的命令总线,我不清楚如何实现验证器类

php - 最佳 OOP 实践 PHP/MySQL

php - 如何在 PHP 中使用多个类

javascript - 单击按钮后如何再次显示和隐藏div