1

テーブルの各行に、レコードをより詳細に表示するためのリンクがあります。pdfテーブルを大きくしすぎずに、レコードごとに生成したさまざまな を表示する方法を追加したいと考えています。クリックのさまざまな条件に対してさまざまなイベントをバインドしましたが、いくつか問題があります。まず、pdf通常のハード リンクからのようには移動せず、保存ダイアログが開きます。pdf第二に、保存しないように指示すると、ページはどのリンクもたどりません。私は何を間違っていますか?chromeキーを押しながらクリックすると、デフォルトの防止が特別なアクティビティの実行を停止する可能性があると思いましたが、これがそもそも問題であったかどうかさえわかりません。不思議なことに、たとえば の後ctrl-click、ページは何もしませんがmouseover、「href」がctrl-click変更された場所、そしてその後の通常のクリックは、最初にやりたかったことを実行します。

コードを見ると、なぜそれが何をしているのかがわかります。防止のデフォルトは、私が望んでいたように、クロムの保存を停止します。私が言ったように、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); 
    } 
}); 
4

2 に答える 2

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; 
    } 
}); 
于 2012-12-21T13:07:23.450 に答える
0

href を変更することは適切ではありませんでした。私はちょうどjavascriptリダイレクトをしました。

if(e.ctrlKey){
        e.preventDefault();
        window.location = ("http://foo.com/report.php?id="+ID);
    } 
于 2012-12-21T13:12:02.287 に答える