javascript - 如何覆盖*仅*左键单击 anchor ?

标签 javascript events onclick dom-events mouseevent

我知道我可以使用 event.preventDefault() 来阻止链接被跟踪。但我只想阻止普通左键单击或触摸点击的默认操作。 shift-left-click、ctrl-left-click、right click 和 middle click 都应该执行默认操作。

如何检测普通的左键单击或轻触?

最佳答案

可以查看MouseEvent类似 button 的属性, altKey , shiftKey & ctrlKey做这个

document.getElementById('test').addEventListener('click', function(event) {
  snippet.log('button: ' + event.button);
  snippet.log('ctrlKey: ' + event.ctrlKey);
  snippet.log('shiftKey : ' + event.shiftKey);
  snippet.log('altKey : ' + event.altKey);

  if (event.button == 0 && !event.ctrlKey && !event.shiftKey && !event.altKey) {
    event.preventDefault();
  }
})
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<a id="test" href="http://stackoverflow.com/">test</a>

关于javascript - 如何覆盖*仅*左键单击 anchor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274760/

相关文章:

javascript - 如何在 Jquery 文档就绪函数中触发复选框单击事件?

javascript - 用数组中的随机值填充表单的输入字段(测试)

Java - 为什么组件函数调用actionPerformed?

javascript - 在 React 中使用 onFocus/onClick 触发输入字段中的函数

JavaScript:具有多个元素的 OnClick 在该关键字下返回 "windows"

javascript - 是否有一种非循环每个单个列表项的方法来查找唯一的列表项?

javascript - JSONP 是否进行异步调用?

javascript - 事件发生后更新 html 上的 javascript 变量 - Reactjs

javascript - 在 Firefox 中单击鼠标中键在新选项卡中打开自定义 URL

javascript - 我可以/如何使用带有 if 语句的 OnClick 吗?