在表格中显示隐藏行

詹姆士

我正在使用一些基于以下JSFiddle 的代码目的是在用户单击“显示额外”链接时显示更多信息。

我遇到的问题是,当点击链接时,除了表格的底行之外,隐藏的元素会短暂显示,然后关闭。

我正在使用 javascript 中的模板字符串填充我的表。这是我用来向表中添加行的代码:

this.addRecordToTable = function(bet, index, id){
console.log(index);
console.log($.data(bet));
var butId = id.toString();

if (bet.bookies == null){
    bet.bookies = "";
}

if (bet.bet == null){
    bet.bet = "";
}

var newRow = `
<tr>
    <td>${bet.date}</td>
    <td>${bet.bookies}</td>
    <td>${bet.profit}</td>
    <td><button id=${butId}>Delete</button></td>
    <td><a href=\"#\" id=\"show_${index}\">Show Extra</a></td>
</tr>
<tr>
    <td colspan=\"5\">
        <div id=\"extra_${index}\" style=\"display: none;\">
            <br>hidden row
            <br>hidden row
            <br>hidden row
        </div>
    </td>
</tr>
`



console.log(newRow);
console.log("#"+butId);

$(newRow).appendTo($("#betTable"));
$("#"+butId).click(
    function()
    {
        if (window.confirm("Are you sure you want to delete this record?")) 
        {
            var rec = new Records();
            rec.removeRecordAt(index);
            $("#betTable tbody").remove();
            var c = new Controller();
            c.init();
        }

    });

$("a[id^=show_]").click(function(event) {
    $("#extra_" + $(this).attr('id').substr(5)).slideToggle("slow");
    event.preventDefault();
});

}

编辑:

我不得不更改$("a[id^=show_]").click$("a[id=show_"+index).click...,因为每次添加新元素时都会将事件处理程序添加到每个元素。感谢@freedomn-m。

自由-m

这段代码:

$("a[id^=show_]")

每个现有链接以及新链接添加一个新的事件处理程序,因为它不是特定于 ID/上下文的,因此所有 show 都a与选择器匹配。

您需要添加上下文 ( newRow) 或使用现有变量作为已定义循环的一部分,例如:

$("a[id^=show_]", newRow)
$("a#show_" + index)

(或任何其他有效的变体)。


另一种方法是对动态添加的元素使用偶数委托,例如:

$(document).on("click", "a[id^=show_]", function...

在这种情况下,您只需要定义/调用一次事件,它就会为新元素触发(即,将其放在新行循环之外)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

隐藏和显示表格中的行

来自分类Dev

显示/隐藏表格行

来自分类Dev

Android:隐藏/显示表格行

来自分类Dev

如何在angular.dart中显示或隐藏表格行

来自分类Dev

隐藏和显示行阈值上方的表格列中的项目

来自分类Dev

如何在angular.dart中显示或隐藏表格行

来自分类Dev

表格中每一行的“显示/隐藏”按钮

来自分类Dev

使用jquery在表格行的div中显示/隐藏图标

来自分类Dev

显示/隐藏表格中的元素

来自分类Dev

在另一个表格行中隐藏和显示表格

来自分类Dev

在另一个表格行中隐藏和显示表格

来自分类Dev

使用Java显示/隐藏表格行

来自分类Dev

隐藏的表格行未显示正确的信息

来自分类Dev

如何使用javascript显示隐藏的表格行?

来自分类Dev

在表格行上,单击隐藏或显示其他表格行

来自分类Dev

AngulaJS根据多种条件隐藏/显示表格行/全部隐藏

来自分类Dev

Javascript中的表格-隐藏/显示列

来自分类Dev

如何隐藏/显示表格中的列?

来自分类Dev

在表格行中显示图像

来自分类Dev

Google脚本隐藏Google表格中的行

来自分类Dev

使用python隐藏Google表格中的行

来自分类Dev

在jtable中隐藏/显示行

来自分类Dev

隐藏/显示HTML表格

来自分类Dev

显示/隐藏表格

来自分类Dev

根据单选按钮值显示或隐藏表格行

来自分类Dev

jQuery:根据单击的按钮隐藏/显示表格行

来自分类Dev

根据日期隐藏表格行并单击按钮再次显示它们

来自分类Dev

基于字母表按钮显示和隐藏表格行

来自分类Dev

如何使表格行可点击以显示隐藏的行内容?