停止在单击鼠标中键上打开一个新选项卡

时间:2016-06-02 11:41:01

标签: javascript jquery html

我在htm中有锚标签。当我在锚标签上单击鼠标中键时,则会打开新选项卡。 但我想阻止它的运作。我在javascript中尝试了很多技巧,但它无法正常工作。任何人都可以解决这个问题吗?

<a class="tag" href="www.google.com>google</a>

我不想通过在带有类(标签)的锚标签上单击鼠标中键来打开一个新标签... 阻止鼠标中键在具有特定ID的锚点选项卡上打开新选项卡。

2 个答案:

答案 0 :(得分:1)

我按照我的要求找到了解决方案

<html>
<head>
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script>
$(function(){
  $(document).on("click", function(e){
    if($(e.target).is("#google") && e.button===1)
      e.preventDefault()
  })
})
</script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<a href="http://google.com" id="google">Google</a><br> <a href="http://bing.com" id="bing">Bing</a>
</body>
</html>

fiddle link

答案 1 :(得分:0)

我同意@Matt Lishman的评论:不要。

但要给你一个解决方案:

您的代码几乎是正确的。只有(正如@GoTo所说),mouseup才会迟到。 当您收听click个事件时,您可以检查事件对象上的which属性。使用滚轮单击时which2

所以,如果which === 2preventDefault

https://jsfiddle.net/k3o5pt6c/