jQuery单击和中键按钮行为

时间:2013-02-25 07:16:17

标签: jquery onclick anchor

我有这样的HTML代码:

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

当用户点击该项目时,将调用click handler。

我想要的是什么:

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

如果我在处理程序中间按钮中更改散列没有打开新选项卡(但是在当前页面上调用了处理程序),但是如果不在中间按钮单击或单击等事件上调用处理程序,它就已经解决了当按住ctrl或shift时

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

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

1 个答案:

答案 0 :(得分:2)

我写了一篇关于左键单击vs其他应该有用的鼠标按钮的帖子:http://www.jacklmoore.com/notes/click-events

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