javascript - 扩展以前解决方案中的表行问题

标签 javascript html

我正在使用已发现的此问题的公认解决方案 here .

Solution's JSFiddle

我的目标只是让表格的行在单击时展开。除了一个问题外,该解决方案对我来说非常有用。一旦展开的行可见,如果您在展开行的最底部附近单击,该行将消失并且无法重新展开。这与公认的解决方案略有不同。如果在一行展开后单击“名称”下的边框,解决方案行也会消失,无法重新展开。

这是 JS 函数:

$(function() {
    $("td[colspan=7]").find("p").hide();
    $("table").click(function(event) {
        event.stopPropagation();
        var $target = $(event.target);
        if ( $target.closest("td").attr("colspan") > 1 ) {
            $target.slideUp();
        } else {
            $target.closest("tr").next().find("p").slideToggle();
        }                    
    });
});

如果需要,我会尝试提供更多信息。

我的 td 只有扩展行的填充设置为 0。如果我给它一些填充,单击填充,甚至在行扩展之前,将删除整个扩展行。

编辑 要重现我的问题,请在展开一行后单击先前解决方案 fiddle 表中“名称”的“N”正下方的边框。

EDIT 如果我单击边框的任何部分,就会发生在我的表格上。

最佳答案

你只需更改 jsfiddle 中的一行,它就会起作用:

$target.slideUp(); 更改为 $target.closest("td").children("p").slideUp(); ,然后你即使您单击边框,也将能够展开。

关于javascript - 扩展以前解决方案中的表行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57776725/

相关文章:

javascript - Discordjs 我如何发送带有多链接的嵌入消息

javascript - HTML:仍然无法从数据列表中选择数据属性吗?

html - 左列固定宽度,右列高度;右列流体宽度

javascript - 如何使用 javascript/jquery 加载 html 下载文件

jquery - 使用 AJAX 加载 div 内容时 HTML5 音频不循环

javascript - Facebook javascript登录到PHP SDK

javascript - 在页面加载时水平和垂直居中 DIV

html - IE7不支持边框半径

javascript - jquery 在即时创建时在 iframe 中运行

反斜杠的 HTML 实体名称