当前位置: 首页 > 面试题库 >

如何使表格中的整行都可单击作为链接?

宿衡虑
2023-03-14
问题内容

我正在使用Bootstrap,但以下操作无效:

<tbody>
    <a href="#">
        <tr>
            <td>Blah Blah</td>
            <td>1234567</td>
            <td>£158,000</td>
        </tr>
    </a>
</tbody>

问题答案:

作者注一:

请查看下面的其他答案,尤其是那些不使用jquery的答案。

作者注二:

保留后代,但肯定在2019年采用了 错误的 方法。(在2017年甚至很糟糕)

您正在使用Bootstrap,这意味着您正在使用jQuery:^),因此一种实现方法是:

<tbody>
    <tr class='clickable-row' data-href='url://'>
        <td>Blah Blah</td> <td>1234567</td> <td>£158,000</td>
    </tr>
</tbody>


jQuery(document).ready(function($) {
    $(".clickable-row").click(function() {
        window.location = $(this).data("href");
    });
});

当然,您不必使用href或切换位置,您可以在点击处理程序函数中执行任何操作。阅读有关jQuery如何编写处理程序的内容;

使用 类而 不是 id的 优点是可以将解决方案应用于多行:

<tbody>
    <tr class='clickable-row' data-href='url://link-for-first-row/'>
        <td>Blah Blah</td> <td>1234567</td> <td>£158,000</td>
    </tr>
    <tr class='clickable-row' data-href='url://some-other-link/'>
        <td>More money</td> <td>1234567</td> <td>£800,000</td>
    </tr>
</tbody>

而且您的代码库不会改变。相同的处理程序将处理所有行。

另外一个选项

您可以这样使用Bootstrap jQuery回调(在document.ready回调中):

$("#container").on('click-row.bs.table', function (e, row, $element) {
    window.location = $element.data('href');
});

这样做的好处是不会在表排序时重置(这与其他选项一起发生)。

注意

由于window.document.location已过时,因此已过时(或至少已弃用)window.location



 类似资料:
  • 我使用的是Bootstrap,以下操作不起作用:

  • 问题内容: 我有一个由无序列表组成的水平导航栏,每个列表项都有很多填充,使其看起来很漂亮,但是唯一可以用作链接的区域是文本本身。如何使用户能够单击列表项中的任意位置以激活链接? 问题答案: 不要在’li’项目中添加填充。而是将锚标记设置为并对其应用填充。

  • 我在Android上有一个,我希望任何嵌入的URL都可以点击。我使用了类,它将它们变成蓝色并加下划线。然而,我不知道如何让它们真正可以点击。 谢谢!

  • 问题内容: 我有一个数据表,每个单元格都是一个链接。我想允许用户单击表格单元格中的任何位置,并让他们点击链接。有时表单元格不止一行,但并非总是如此。我使用td{display:block}来获得覆盖大部分单元格的链接。当一行中有一个单元格为两行,而其他单元格只有一行时,一个衬板不会填满表格行的整个垂直空间。这是示例HTML,您可以在上看到它的运行方式: 问题答案: 您需要对CSS进行一些小的更改。

  • 在列表中,我有一个从状态映射出来的用户表。当我单击该链接时,foo函数获取用户id并将其传递给Profile,List组件将被Profile组件替换,显示选定的用户配置文件 现在,单击中的链接显然有效,但我希望使整个行像可单击的 我尝试将onClick函数绑定到,但我不知道如何使它像那样替换要配置文件的组件 编辑:根据雅各布·斯密特的评论,我设法使用withRouter使其工作 > 我包括来自re

  • 我正在使用Vue,并且: 我如何才能使整行可点击,而不仅仅是具有路由器链接的按钮?