2012-12-21 32 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); 
    }