1

私のサイトには、ユーザーが件名の見出しをクリックしてウィンドウを開いてメッセージを読むことができる受信トレイ セクションがあります。

カーソルの移動に合わせて受信トレイ メッセージを強調表示する JavaScript 関数を追加しました。ハイライトをクリック可能にしました。ユーザーが件名のリンクをクリックした場合と同じ場所に移動し、ウィンドウ read_message.php に移動している間、メッセージ ID が読み込まれず、メッセージが表示されません。

動作する件名リンクは次のとおりです。

<?php echo "<strong><a href=\"read_message.php?msg={$inbox['message_id']}\">{$inbox['subject']}</a></strong>"; ?>

そして、動作していないリンク付きのjavascriptを次に示します。

<script>
     $(function() {
        $('tr').hover(function() {
            $(this).css('background-color', '#eee');
            $(this).contents('td').css({'border': '0px solid red', 'border-left': 'none', 'border-right': 'none'});
            $(this).contents('td:first').css('border-left', '0px solid red');
            $(this).contents('td:last').css('border-right', '0px solid red');
        },
        function() {
            $(this).css('background-color', '#FFFFFF');
            $(this).contents('td').css('border', 'none');
            $('tr').click(function() { 
    document.location = "<?php echo "read_message.php?msg={$inbox[0]}" ?>";
} );
        });
    });
    </script>

誰かが私が間違っているところを教えてくれることを願っています。ありがとう。

4

1 に答える 1

1

最初に関数を移動して、.click()関数内に入らないようにする必要があります。.hover()そうしないと、マウスが行から出るたびにクリック ハンドラーが設定され、最初にマウスを置いたときに機能しません。

それが完了したら、これを行うことができます:

$("tr").click(function() {
  location.href = $(this).find("a[href*='read_message.php']").attr("href");
});

.find()(私はjQueryを実際に使用していないため、構文について100%確実ではありませんが、これは役立つはずです)

于 2012-12-15T06:16:37.547 に答える