首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><a>单元的模拟行为

<a>单元的模拟行为
EN

Stack Overflow用户
提问于 2014-12-26 06:12:42
回答 2查看 156关注 0票数 2

我有这样的东西:

代码语言:javascript
复制
<tr><td><a href="...">text</a></td>...</tr>

我需要使用户能够单击整个表行以在该链接上导航。

现在我使用以下代码:

代码语言:javascript
复制
$(function () {
    $('tr').each(function () {
        var tr = $(this);
        if (tr.hasClass('no-row-link')) return;
        var links = $('a', tr);
        if (links.length != 1) return;
        tr.addClass('row-link').click(rowLinkClick);
    });

    function rowLinkClick() {
        var tr = $(this);
        var links = $('a', tr);
        if (links.length != 1) return;
        window.location = links.attr('href');
    }
});

但问题是,这种行为并不是很好。用户可以命令-点击普通链接打开页面的新选项卡,但他不能在这里。用户可以右击普通链接查看链接上下文菜单,但他不能在这里.

唯一能做我想做的事情的方法是迭代抛出表格单元格(th/td),并将其内容包装在链接中。然后,让这些链接表现为显示:块。这不是非常优雅的解决方案。还有其他解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-26 06:17:08

在您的行上使用数据属性如何?

代码语言:javascript
复制
<tr data-href="yourlinkhere"><!--whatever comes here--></tr>

然后在jQuery中:

代码语言:javascript
复制
$('.table-selector').on('click', 'tr', function(){
    var href = $(this).data('href');

    if (href){
        window.location = href;
    }
});

它看起来很优雅,你不觉得吗?^^

更新:啊,右击行为。kk

代码语言:javascript
复制
tr { position: relative; }
tr a { position: absolute; display: block; width: 100%; height: 30px/*or something*/ }

CSS解决方案,不确定表的灵活性,但如果可能的话.这是一个关于我如何尝试它的演示

票数 1
EN

Stack Overflow用户

发布于 2014-12-26 06:48:02

您可以检查e.ctrlKey属性,并相应地使用window.navigatewindow.open

代码语言:javascript
复制
$(function () {
    function rowLinkClick(e) {
        var href = $(this).find('a').attr('href');
        if (href) {
            (e.ctrlKey ? window.open : window.navigate)(href);
        }
    }

    $('tr')
        .not('.no-row-link')
        .has('a')
        .addClass('row-link')
        .click(rowLinkClick);
});

您可以使用CSS显示一个类似链接的鼠标光标:

代码语言:javascript
复制
.row-link {
    cursor: pointer;
}

http://jsfiddle.net/zmr6whjh/2/

我认为右击行显示链接的上下文菜单可能有点多。我不确定有什么明智的办法。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27653465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档