我正在加载AJAX中的每个页面,所以我在链接上使用return false将它们加载到ajax中。
问题:如果这些家伙想要在新窗口中打开它不能,ctrl + click也会激活ajax,我没有尝试过中键,因为我没有鼠标。
然后我尝试了e.preventDefault,它仍然阻止了这个家伙在另一个标签中打开它。
我知道如何绕过这个吗?
(如果您想尝试:www.p1x3L.com)
答案 0 :(得分:4)
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.
});