【发布时间】:2016-03-29 03:17:30
【问题描述】:
我知道我可以使用event.preventDefault() 阻止链接被跟踪。但我只想阻止普通的左键单击或触摸点击的默认操作。 shift-left-click, ctrl-left-click, right click, middle click都应该执行默认动作。
如何检测普通的左键单击或轻触?
【问题讨论】:
标签: javascript events onclick dom-events mouseevent
我知道我可以使用event.preventDefault() 阻止链接被跟踪。但我只想阻止普通的左键单击或触摸点击的默认操作。 shift-left-click, ctrl-left-click, right click, middle click都应该执行默认动作。
如何检测普通的左键单击或轻触?
【问题讨论】:
标签: javascript events onclick dom-events mouseevent
您可以检查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>
【讨论】:
metaKey。谢谢。我希望这些是 button 等键的单一属性。