0

我有这样的html代码:

<ul>
  <li>
    <a href="#foo">foo</a>
  </li>
</ul>

当用户单击该项目时,将调用单击处理程序。

我想要的是:

  • 更改处理程序方法中的哈希(使用window.location.hash
  • 当用户通过鼠标左键单击时,应调用处理程序
  • 当用户通过鼠标中键点击时(例如在 Chrome 中),链接应该在新标签中打开,但不应在当前页面上调用处理程序
  • 支持与链接的其他交互:当用户在活动链接上按下回车键(他可以使用tab键激活它)或者如果他使用 vimperator 或 vimium 等浏览器扩展

如果我在处理程序中间按钮中更改哈希而不打开新选项卡(但已在当前页面上调用处理程序),但如果不调用处理程序,例如中间按钮单击或按 ctrl 或按下时单击,则已解决

如果我从处理程序代码中删除哈希更改,中间按钮会打开新选项卡,但处理程序会在当前页面上调用。

请给我一些建议如何实现我的目标:我应该mousedown与点击处理程序一起实现处理程序还是可能有更方便的方法?

4

1 回答 1

2

我写了一篇关于左键单击与其他鼠标按钮的文章,应该会有所帮助:http ://www.jacklmoore.com/notes/click-events

它假设您使用的是 jQuery。特定的按钮按下在属性下的事件对象中指示which

于 2013-02-25T07:40:51.343 回答