为什么我的href仅在手动刷新页面后才能工作?

时间:2018-11-19 12:21:32

标签: javascript php html-table

我做了一个装有SQL数据的表。我在表行中添加了数据引用,这将我带到另一页并显示该行中的所有数据。但这仅在我手动刷新表所在的页面后才起作用。当我使用常规href进入页面时,单击表格行无济于事。当我使用网址栏旁边的页面刷新器刷新页面时,表行事件起作用。这是什么原因?

<script>
    var trid;
    function foo() {
    }
</script>
<script>
    $(function(){       
        $('*[data-href]').click(function(){
            window.location = $(this).data('href');
            return false;
        });
    });
</script>

上面的代码位于页面顶部

<div data-role="navbar">
    <ul>
        <li><a href="stoftest.php">Stoftest</a></li>
        <li><a href="overzicht.php">Overzicht</a></li>
        <li><a href="klim.php">Klimopdracht</a></li>
    </ul>
</div>

上面的代码是对带有表的页面的引用(中间一个)。

echo "<table>"; 
echo "<tr>";
echo "<th>".'Stof'."</th>";
echo "<th>".'Score'."</th>";
echo "<th>".'Datum'."</th>";
echo "</tr>";
foreach ($result as $pers) {
    echo "<tr data-href='detail.php?persId=".$pers->id."'>";
    echo "<td>".$pers->stofid."</td>
    <td>".$pers->zoeken."</td>
    <td>".$pers->datum."</td>";
    echo "</tr>";
}
echo "</table>";

上面的代码是我使用PHP和HTML的表格

所有这些操作仅在刷新手动页面后有效。我不知道是什么原因导致了这个问题。进入此页面后,我什至尝试了自动页面刷新,但是此刷新事件仅在手动刷新页面后才起作用。

告诉我是否需要更多代码。

1 个答案:

答案 0 :(得分:0)

您的点击处理程序很好,因此问题必须出在页面的其他地方。

打开Javascript控制台并添加一些console.log调用可能会有所帮助。例如

$('*[data-href]')
  .each(function()
  {
    // Check this value the first time the page loads
    // then see if it changes when the page reloads
    console.log($(this).data('href'));
  })
  .click(function(event)
  {
    event.preventDefault();
    window.location = $(this).data('href');
  });