【发布时间】:2013-03-25 04:11:17
【问题描述】:
我正在制作一个 php/html 应用程序,当用户单击行 (<tr>) jquery 打开该记录时,它会在表格中显示一些数据。
这是代码:
$.fn.linkRow = function(element) {
thisRow = this.find('tbody tr');
thisRow.on('click', function() {
hrefLocation = $(this).find('td.link:first a').attr('href');
if (hrefLocation) {
window.location.href = hrefLocation;
};
}).addClass((thisRow.has('td.link')) ? 'pointer' : '');
return this;
};
事实是:用户无法在新选项卡中打开记录。唯一的方法是复制并粘贴 href... 而我的用户不会这样做。
如果对滚动按钮触发的事件以及如何打开新标签进行一些研究,后者几乎是不可能的,所以......有没有人可以想办法?
编辑:我的意思是鼠标滚轮...通常这会在新标签页中打开一个链接。
PS:我必须使用表格,在某些时候我会为此制作一个基于 css 的表格布局(不需要 javascript),但在这个版本的软件中我不能这样做。
谢谢!
这是最终代码:
$.fn.linkRow = 函数(元素){
thisRow = this.find('tbody tr');
thisRow.not('a').on('mouseup', function(e) {
hrefLocation = $(this).find('td.link:first a:first').attr('href');
如果(hrefLocation){
如果(e.which == 2){
window.open(hrefLocation);
}
别的{
window.location.href = hrefLocation;
}
};
}).addClass( ( thisRow.has('td.link') ) ? 'pointer' : '' );
返回这个;
};
但是...鼠标滚轮点击不符合我的意图:
如果你点击一个链接(a 标签)> 打开一个新标签
如果您单击无链接(任何其他标签)> 它将根据您的鼠标位置滚动。 如果你向上移动鼠标,它会向上滚动,所以
所以...我可以工作,但我绝对需要制定一个无 JavaScript 的解决方案。
【问题讨论】:
-
滚动按钮到底是什么意思?我不知道点击一下会如何影响故事。
-
我想我明白了——我想他的意思是鼠标中键点击(就像用“第三鼠标键”点击一样(映射到许多鼠标上的滚轮点击))在新选项卡中打开普通链接,他想在 JavaScript 中复制它。
-
假设我的上述假设是正确的,请查看 stackoverflow.com/questions/5833928/… 之类的帖子,了解如何检测使用了哪个鼠标按钮(您将无法在新选项卡中显式打开,但您可以将目标设置为 _blank,正如下面有人建议的那样)。
-
@IainCollins 啊,人们可能有也可能没有的滚轮。 :)
-
是的!我的意思是鼠标中键...
标签: javascript jquery html