通常情况下,此组合会在Chrome,Firefox和Safari for Mac中打开一个新标签链接。有没有办法检测到这个?我知道jquery的event.which
,但它的值为1
,与简单的左键单击无法区分。
用例是Backbone HTML5 pushstate,我想在其中附加一个'click'
事件处理程序,它不会触发正常导航的页面加载,但仍然允许用户在新选项卡中打开链接⌘-⇧点击。
答案 0 :(得分:4)
您可以使用活动的metaKey
和shiftKey
属性:
$(window).click(function(e) {
if(e.metaKey && e.shiftKey) {
console.log("Command+Shift+Click");
} else {
console.log("Other click");
}
});
所以,例如,如果您正在进行#!
路由而不是实际关注网址,并希望命令或命令+ shift执行正常行为(在新选项卡中打开),那么您将拥有类似< / p>
function followLink(e) {
if(!e.metaKey) e.preventDefault();
yourApp.navigate('/link');
}