Javascript 使用DIV作为链接触发器在新选项卡快捷方式上重定向

Javascript 使用DIV作为链接触发器在新选项卡快捷方式上重定向,javascript,html,keyboard-shortcuts,Javascript,Html,Keyboard Shortcuts,我有一个页面(小部件)的部分,我想将其用作链接(单击任意位置将转到另一个页面): 除非您在上按住Ctrl键并单击或Cmd键并单击打开新选项卡中的链接,否则此操作正常。由于您没有显式地执行右键单击,因此浏览器将其注册为单击,因此该函数仍将执行 我想我可以检查一下在点击事件中是否按下了任何修改键,但是我觉得这有点麻烦。有一个很好的JS解决方案吗?您可以这样做(单击处理程序的jQuery): 您可以在单击处理程序中处理您想要的任何内容,如上图所示为什么要使事情复杂化?只需使用锚点而不是那个div.我知

我有一个页面(小部件)的部分,我想将其用作链接(单击任意位置将转到另一个页面):

除非您在
上按住Ctrl键并单击
Cmd键并单击
打开新选项卡中的链接,否则此操作正常。由于您没有显式地执行右键单击,因此浏览器将其注册为单击,因此该函数仍将执行


我想我可以检查一下在点击事件中是否按下了任何修改键,但是我觉得这有点麻烦。有一个很好的JS解决方案吗?

您可以这样做(单击处理程序的jQuery):


您可以在单击处理程序中处理您想要的任何内容,如上图所示

为什么要使事情复杂化?只需使用锚点而不是那个div.
我知道,将那个锚点更改为span。。。它甚至在语义上更有意义,因为它只有文本(我认为样式不同),这只是一个婴儿样本。真正的html代码片段有很多div…谢谢你的建议,但是根据我的问题,我不希望依赖于检查修改键
<!-- just an example. real application is quite a bit more complex -->
<div data-href="/page">
   <h1><a href="/page">Title of sample content</a></h1>
   <p>
        some content here with an image
        <img src="image.jpg">
   </p>
   <div>
        and many more elements in here
        <div>
             with nested structure with semantic meaning
        </div>
   </div>
</div>
$('div').click(function() {
    window.location=$(this).data("href");
});
$(selector).click(function(e) {
  if(e.shiftKey) {
    //Shift-Click
  }
  if(e.ctrlKey) {
    //Ctrl+Click
  }
  if(e.altKey) {
    //Alt+Click
  }
});