我正在加载AJAX中的每个页面,因此我在链接上使用return false将其加载到ajax中。
问题:如果这些家伙想在新窗口中打开他无法打开的控件,则ctrl + click也会激活ajax,我没有尝试过中间按钮,因为我没有鼠标。
然后,我尝试了e.preventDefault,它仍然阻止花花公子在另一个标签中打开它。
知道我该如何规避吗?
(如果您想尝试:www.p1x3L.com)
最佳答案
e.preventDefault()
将完全阻止浏览器跟踪链接。
我想做的只是在单击发生时检查Ctrl(在Mac上为cmd)的状态,然后处理该操作。
您需要跟踪按键的动作。考虑以下示例,该示例为ctrlPressed
分配布尔值:
var ctrlPressed = false;
$(window).on('keydown', function(e) {
if (e.metaKey || e.ctrlKey) ctrlPressed = true;
}).on('keyup', function(e) {
if (e.metaKey || e.ctrlKey) ctrlPressed = false;
});
现在,在您的
click
处理程序中,您可以检查ctrlPressed
的状态:$('a').on('click', function(e) {
if(ctrlPressed)
{
return true;
}
// Handle your AJAX here. No need for an else{} block
// since return true will already have executed.
});