jQuery或JavaScript中是否有一种方法可以让用户按CTRL +点击链接在<a href="">example</a>
元素这样的新标签中打开链接?
以下是我所谈论的一个例子: -
jQuery('#some-link').bind('click', function() {
window.location = 'http://someurl.com';
});
如果您按住CTRL并单击“some-link”元素,它只是在使用上面的代码时打开当前页面中的页面,有关如何做的任何想法?
答案 0 :(得分:16)
检查是否按下Ctrl
键,然后使用window.open
打开链接。但是,链接可能无法在新选项卡中打开。请参阅讨论here。
jQuery('#some-link').bind('click', function(e) {
e.preventDefault();
if (e.ctrlKey){
window.open('http://someurl.com','_blank')
}
});
请参阅JSFiddle
答案 1 :(得分:2)
如果有人想要在常规点击时禁用页面导航,进行ajax调用或其他东西,但仍想保持默认的ctrl +单击并右键单击并单击鼠标中键(鼠标滚动按钮),即方式:
$('#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说:
event.which也标准化按钮按下(mousedown和 mouseupevents),报告左按钮1,中间2,和3 对。使用event.which而不是event.button。
答案 2 :(得分:0)
在Macintosh键盘上,这是⌘Command键。在Windows键盘上,这是Windows键(⊞Windows)。
有关更多信息,请参见此页面:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/metaKey