我在home.php
上有一个锚点链接,链接到这个:
<a href='#?id=$thought_id' class='toggle-comment' data-id='$thought_id' '> Comments ($num_of_comments) </a>
当鼠标悬停在此锚链接上时,我希望看到如下结果:
localhost/#?id=210
但是我得到了这个:
localhost/home.php#?id=211
我见过类似的问题here:但是,应用了最佳答案所表明的结果,我仍然得到了相同的结果。我在profile_page.php
上也有完全相同的锚链接,并且在那里工作得很好。
锚点链接并不意味着去任何地方,点击它会动态地放大它下方的div,显示评论。
修改:
锚链接如何工作:
单击时,锚链接会展开其下方的div。点击后,会显示此div:echo "<div id='toggleComment$thought_id' class='new_comment'>";
然后,对于添加到此thought
的每个新评论,另一个div是echo&#39; d
<div class='new_comm' id='thoughtId".$thought_id."-childId".$comment['id']."'>
实现此目的的JavaScript :
$(function() {
$("a.toggle-comment").on("click", function(event) {
// prevents browser to go to href's #
event.preventDefault();
// uses Jquery's data() function to get comment id from link's data-id attribute
var id = $(this).data('id');
// get element by id and toggle display
var ele = document.getElementById("toggleComment" + id);
$(ele).toggle();
});
});
编辑2 :
与Rocki在聊天中得出结论。问题是我将JavaScript定义了两次,一次在home.php
的源代码中,一次在functions.js
中,同样位于head
的{{1}}中。从源代码中删除了脚本,代码开始运行。
答案 0 :(得分:2)
#
后面的所有内容都被解释为哈希片段,而不是发送到服务器。相反,您的浏览器会更改当前页面的哈希片段。
RFC 2396:统一资源标识符(URI):通用语法
排除字符“#”,因为它用于分隔URI 来自URI引用中的片段标识符(第4节)。
答案 1 :(得分:0)
使用
<a href='/#?id=$thought_id' class='toggle-comment' data-id='$thought_id' '> Comments ($num_of_comments) </a>
代替(在你的网址之前/之前)