【问题标题】:How to open new tab with "ctrl+click" instead of redirect current tab, in jQuery?如何在jQuery中使用“ctrl+click”打开新标签而不是重定向当前标签?
【发布时间】:2014-10-02 18:17:36
【问题描述】:

表格包含数字值,每个单元格都有自己的href

如果我像这样应用href:

nTd.click(function(e){
   $(this).css("font-weight","bold");
   e.stopPropagation();
   location.href = 'http://google.com';
});

每次点击单元格重定向窗口,我无法通过“ctrl + click”打开新标签。

如果我在TD 中添加类似'<a href="http://google.com"> 123123 </a>' 的内容,那么对数字值进行排序就会中断,按字典顺序排列。

【问题讨论】:

标签: javascript jquery html sorting lexicographic


【解决方案1】:

检查事件发生时 CTRL 键是否按下:

nTd.click(function(e){
   $(this).css("font-weight","bold");
   e.stopPropagation();
    if(e.originalEvent.ctrlKey){
        window.open("http://www.google.com", "_blank");
    } else {
        location.href = 'http://google.com';   
    }
});

JSFiddle

您不会在小提琴中看到页面更改,但您会在控制台中看到它产生的错误。

【讨论】:

  • 有些人还通过使用鼠标中键或右键单击并在上下文菜单中按“在新标签中打开”在新标签中打开链接。
  • 当然,我是其中之一,但这是另一个问题。
【解决方案2】:

从最初的问题开始,我的回答是: 不需要 jquery,您可以简单地更改锚标记以具有 target='_blank' 功能。 所以完整的例子是:

<a href="http://google.com" target="_blank"> 123123 </a>

根据更多评论和其他想法进行编辑:或者,您可以将其添加到您的函数中:

window.open('url to open','window name','attribute1,attribute2')

所以一个实际的例子是:

nTd.click(function(e){
   $(this).css("font-weight","bold");
   e.stopPropagation();
   window.open("http://www.google.com", "_blank");
});

Anchor Tag Reference Javascript open new window reference

【讨论】:

  • 这也是我的下意识回答,但我认为 OP 想要一个 jQuery 解决方案,因为单击的元素似乎是 td,而不是链接。此外,似乎 OP 想要新的标签行为 only 在单击时按下 ctrl 时。
  • 可能,我的英语不太好。我说的是我无法格式化表格单元格中的数据。我不能用像你这样的 html 代码替换数字 123123
  • @WoodrowBarlow 啊我现在看得更清楚了。看起来乔治已经明白了。
猜你喜欢
  • 2022-11-18
  • 2016-12-26
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
相关资源
最近更新 更多