2012-12-21 28 views
1

我在每个表格行中都有一个链接来更详细地查看记录。我想添加一些方法来查看我们为每条记录生成的不同pdf,而不会增加太多的表格。我为不同的事件绑定了不同的点击条件,但我遇到了一些问题。首先,它不会像硬链接那样进入pdf,它会打开保存对话框。其次,一旦我告诉它不保存,页面将不会遵循任何pdf链接。我究竟做错了什么?我认为预防默认可能会阻止chrome当它看到按键+点击时执行特殊活动,我甚至不确定是否是开始时的问题。奇怪的是,在我之后,例如,ctrl-click,该页面将不会执行任何操作,但mouseover显示'href'为ctrl-click修改过的位置,之后的定期点击完成了我希望它首先执行的操作。基于按键修改链接行为

看着代码,我可以看到它为什么在做它正在做的事情。防止默认停止保存chrome,就像我想要的。像我说的那样,href被改变了。现在我必须按照链接。如果我在收到答复之前偶然发现答案,我会回答。

$(".doThings").click(function(e){ 
    var ID = $(this).text(); 
    if(e.ctrlKey){ 
     event.preventDefault(); 
     $(this).attr("href", "http://foo.com/report.php?id="+ID); 
    } 
    else if(e.altKey) { 
     event.preventDefault(); 
     $(this).attr("href", "http://foo.com/r30.php?id="+ID); 
    } 
    else if(e.shiftKey) { 
     event.preventDefault(); 
     $(this).attr("href", "http://foo.com/r45.php?id="+ID); 
    } 
}); 
+0

如果您偶然发现答案,请不要删除此内容。回答自己,然后当有人有类似的问题,他/她可以找到答案 –

回答

1

改为使用window.location.href

$(".doThings").click(function(e){ 
    var ID = $(this).text(); 
    if(e.ctrlKey){ 
     event.preventDefault(); 
     window.location.href = "http://foo.com/report.php?id="+ID; 
    } 
    else if(e.altKey) { 
     event.preventDefault(); 
     window.location.href = "http://foo.com/r30.php?id="+ID; 
    } 
    else if(e.shiftKey) { 
     event.preventDefault(); 
     window.location.href = "http://foo.com/r45.php?id="+ID; 
    } 
}); 
+0

你击败了我20秒。感谢您的帮助! –

0

改变href是不是要走的路。我只是做了一个JavaScript重定向。

if(e.ctrlKey){ 
     e.preventDefault(); 
     window.location = ("http://foo.com/report.php?id="+ID); 
    }