【问题标题】:eventlistner in table each row only trigger last row表中的事件监听器每一行只触发最后一行
【发布时间】:2020-09-30 14:19:09
【问题描述】:

我正在编写一个表格,允许用户单击表格行并显示隐藏的行。 我使用带有循环的 addEventListener 来允许每个表行调用该行下的隐藏行。 例如:

row A 
row B

点击A行后,隐藏行将显示在A行下方和B行上方

row A
hidden row 1
hidden row 2
row B

但是,我的代码将始终且仅触发最后一行。如果表格中有 15 行,则可以单击并显示行。只有第 15 行的隐藏行会显示。无论我点击第 1 行还是第 15 行,网页总是显示第 15 行。

                        var id = "";
                        var count = 1;
                        var table = document.getElementById("header_table");
                        for (var i = 0; i < r.length - 1; i++) {
                            id = 'detail_' + i;
                            console.log(id);
                            table.rows[count].addEventListener('click', function () {
                                console.log("clicking row " + i);
                                $("." + id).toggle();
                            });
                            count = count + 6;
                        }

【问题讨论】:

  • 如果您可以添加一个带有此错误的工作 sn-p 偏离路线,那将会很有帮助。尝试添加诸如 jfiddle 之类的东西。

标签: javascript html jquery


【解决方案1】:

谢谢大家,我解决了我的问题。我应该将参数绑定到函数中。

Reference: Function.prototype.bind

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多