如何覆盖*仅*左键单击锚点?

时间:2016-03-29 03:17:31

标签: javascript events javascript-events onclick mouseevent

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

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

1 个答案:

答案 0 :(得分:2)

您可以查看MouseEventbuttonaltKey和{}等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>