Is there a way in jQuery or JavaScript to enable the user to CTRL + Click a link to open a link in a new tab like <a href="">example</a>
element?
Here is an example of what I am talking about:-
jQuery('#some-link').bind('click', function() {
window.location = 'http://someurl.com';
});
If you hold CTRL and click the 'some-link' element, it just opens the page within the current page when using the above code, any ideas on how do this?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With