2016-03-29 6 views
1

私はevent.preventDefault()を使用して、リンクが続くのを止めることができます。しかし、私は単純な左クリックまたはタッチタップでデフォルトのアクションを防止したいだけです。シフト - 左クリック、ctrl-左クリック、右クリック、および中クリックは、すべてデフォルト動作を実行する必要があります。上書きする方法*アンカーを左クリックするだけですか?

プレーンな左クリックまたはタッチタップを検出するにはどうすればよいですか?

答えて

2

あなたはこの

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>

+0

を行うにはbuttonaltKeyshiftKey & ctrlKeyようMouseEventプロパティを確認することができます私も 'metaKey'を追加しました。ありがとう。私はこれらがボタンのようなキーのための単一のプロパティであることを望んでいました。 – Jayen

関連する問題