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");
});

(不是 100% 确定.find()语法,因为我并没有真正使用 jQuery,但这应该会有所帮助)

于 2012-12-15T06:16:37.547 回答