jQuery/JavaScript - Allow CTRL + Click to open link in new tab
Check to see if the Ctrl
key is pressed, and open the link using window.open
. The link may not open in a new tab though. See the discussion here.
jQuery('#some-link').bind('click', function(e) {
e.preventDefault();
if (e.ctrlKey){
window.open('http://someurl.com','_blank')
}
});
See JSFiddle
In case anyone wants to disable page navigation on regular click, to make an ajax call or something, but still wants to keep the default ctrl+click and right-click and middle-click(mouse scroll button) , that is the way:
$('#link').bind('click', function(e) {
if (!e.ctrlKey && e.which != 2 && e.which != 3) {
e.preventDefault();
// some logic:
$('#box').append('<br>').append($('<a>').html('not paging but doing something! Now try with CTRL'));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box">
<a id="link" href="http://stackoverflow.com/questions/26823884/">this question</a>
</div>
JQuery documentation says:
event.which also normalizes button presses (mousedown and mouseupevents), reporting 1 for left button, 2 for middle, and 3 for right. Use event.which instead of event.button.