0

このHTMLを検討してください

<table id="search_results">
    <tr><td><a href="reports.php" style="display:none">_</a>Report 1</td></tr>
</table>

親 (TR) に href 属性を持つ A タグが含まれている TD をマウスでクリックすると、ウィンドウがそのページにリダイレクトされるコードを作成しました。

//Set row clicking
$('table#search_results td').click(function () {
    var href = $(this).parent().find('a').attr("href");
    if (href) { window.location = href; }
});

このコードは、ユーザーが TD をクリックした場合に完全に機能します。ただし、戻るボタンが押されたときにクリックイベントをトリガーするコードを作成しました。

$(document).keypress(function(e) {
    if(e.which == 13) {
        $('table#search_results tr:not([class=vanish]) td:first').click();
    }
});

コードをデバッグしました。戻るボタンが押されると、クリック イベントが実際にトリガーされ、href 変数が適切に入力されますが、ページは単に ? で更新されます。設定された href にリダイレクトされるのではなく、URL の最後に... 「index.php?」

なぜこれが起こるのでしょうか?

4

2 に答える 2

0

私はあなたが何をするつもりだったと思います:

$(selector).trigger("click");

また:

window.location はオブジェクトです。おそらく設定したいのは window.location.href です

http://davidwalsh.name/javascript-window-location

于 2012-09-12T08:32:09.903 に答える
0

修正しました..私の間違い...

フォームにアクションがなく、どこにも送信ボタンがなかったにもかかわらず、ネイティブ フォームの送信が jquery コードを引き継いでいた。私がしなければならなかったのは、onsubmit="return false;" を追加することだけでした。フォームで。

于 2012-09-12T10:34:11.290 に答える