作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的东西:
<tr><td><a href="...">text</a></td>...</tr>
我需要让用户能够点击整个表格行以在该链接上导航。
现在我使用下面的代码:
$(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) 并将它们的内容包装在链接上。然后使这些链接与 display:block 一起运行。这不是非常优雅的解决方案。还有其他解决方案吗?
最佳答案
如何在行上使用数据属性?
<tr data-href="yourlinkhere"><!--whatever comes here--></tr>
然后在 jQuery 中:
$('.table-selector').on('click', 'tr', function(){
var href = $(this).data('href');
if (href){
window.location = href;
}
});
它当然看起来更优雅,你不觉得吗? ^^
更新:啊,右键点击行为……kk
tr { position: relative; }
tr a { position: absolute; display: block; width: 100%; height: 30px/*or something*/ }
CSS 解决方案,不确定表格的灵 active ,但如果可能的话...这里有一个 DEMO我将如何尝试。
关于javascript - 模拟 <a> 元素的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27653465/
我是一名优秀的程序员,十分优秀!