【问题标题】:Why is AutoScroll redirecting to previous page为什么 AutoScroll 会重定向到上一页
【发布时间】:2016-07-23 15:00:38
【问题描述】:

我刚刚创建的函数有问题。我正在尝试自动滚动到表格上的特定用户。当我选择我的按钮时,它会滚动到用户,但随后会重新加载上一页。

您将访问 xxx.com,然后选择一个指向 xxx.com/results_page.php 的菜单。从这里您将选择另一个链接,将您带到 xxx.com/results.php。从这里您将选择自动滚动按钮。该按钮将您带到页面上的正确位置,然后重新加载到 xxx.com/results_page.php。

我从朋友那里复制了这个脚本,所以我不太确定它是如何工作的。 这是我的按钮,由于它坏了,我目前已禁用它。

<tr>
    <td colspan=2>
        <button onclick="findUser()" title="Sorry, I'm still working  on this." disabled>My Entry</button>
    </td>
</tr>

这是页面顶部的功能。

<script type="text/javascript">
function findUser(){
    $(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}
</script>

让我知道我还能在这里提供什么帮助。如果需要,我可以设置一个测试页。

测试页面 测试.daqspickem.com 登录:访客 通行证:客人

登录后,前往 testing.daqspickem.com/results.php。该按钮在该页面上。 The results page The results pages

此代码是我设置要查找的 TD 的位置。

    switch ($user_names_display)
    {
            case 1:
                    echo '      <td>' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '</td>' . "\n";
                    break;
            case 2:
                    echo '  <td><img src="images/logos/' . trim($tmpUser->template_name) . '.gif" style="opacity: .8; width: 40px; height: 40px; margin-left: 0px; z-index: -1;" />' . trim($tmpUser->userName) . '</td>' . "\n";
                    break;
            default: //3
                    echo ' <td><img src="images/logos/' . trim($tmpUser->template_name) . '.svg" style="width="15px" height="15px" /><abbrev title="' . trim($tmpUser->userName) . '&#10;' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '">' . substr($tmpUser->userName, 0, 17) . '</abbrev>
</td>' . "\n";
                    break;
    }

【问题讨论】:

  • 肯定需要那个测试页。你的票据的目的不够明确。您还可以设置一个 js fiddle。谢谢
  • 我在描述中告诉了你的目的。我正在尝试自动滚动到表格上的特定用户(“td:contains(''):last")。我想单击按钮并在表格中滚动到该记录。
  • 用测试页编辑了原始帖子。
  • 我想我只需要弄清楚如何防止页面刷新。我下了一个兔子洞,但脚本除了令人耳目一新之外还有效。

标签: php jquery html autoscroll


【解决方案1】:

试试这个:

function findUser(e){
    e.preventDefault();
    $(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}

这是有效的,因为它可以防止 href 执行它的默认功能。

【讨论】:

  • 同样的问题,虽然我可能已经发现了问题。当我查看我的表时,它显示用户名而不是 First:Last,因此它可能找不到记录。这会导致它重新加载吗?
【解决方案2】:

我猜是这个脚本的问题,

<script type="text/javascript">
function findUser(){
    $(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}
</script>

在这里,您的 $_SESSION['loggedInUser'] 包含 "Guest" 而您所指的 td 具有内部 HTML "guest"

该更改可以解决此问题,但您需要设计一个回退来处理用户不在表中的这种情况。

【讨论】:

  • 你把我弄丢了,你刚刚发布了与我开始时相同的代码?我该如何解决?
【解决方案3】:

我在按钮周围添加了一个表单,它似乎已经解决了这个问题。不过,我愿意接受任何其他想法,因为那似乎并不理想。 Chrome似乎是刷新的问题。

      <form id="frmData" onsubmit="return false"> 
  <tr><td colspan = 2 > <button onclick="findUser()" title="Sorry, I'm still working  on this." >My Entry</button></td> </tr></table>
</form>

脚本

    <script type="text/javascript"> 
function findUser()
{
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);

}
</script>

【讨论】:

    猜你喜欢
    • 2013-11-28
    • 1970-01-01
    • 2022-01-09
    • 2016-01-15
    • 2013-08-13
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多