我有一个在header.php中的菜单,在我加载的每个页面上都被称为包含。发生了什么,如果我单击标题中具有绝对路径的链接,当我转到链接并加载header.php时,我尝试调用使用onclick()
作为href的'#'
,但由于某种原因继承了我目前所在文件夹的链接。让我举例说明。
菜单结构:
请
<ul>
<li><a href="#" onclick="addbox();" class="BA">Add Box(es)</a></li>
<li><a href="/domain/admin/requests/boxes/index.php">Administration</a></li>
</ul>
文件
<ul>
<li><a href="#" onclick="addfile();" class="BA">Add Fil(es)</a></li>
<li><a href="/domain/admin/reports/boxin/index.php">Administration</a></li>
</ul>
如果我在文件菜单中点击添加框(es)链接,而不是链接到请求链接中的addbox();
,它会将链接显示为:/domain/admin/reports/boxin/index.php#
。我该如何纠正这个问题。非常感谢
答案 0 :(得分:1)
首先,我认为你应该正确地说出你的问题。我无法理解你在这里想说什么。
无论如何,我会尝试从我能理解的内容中给出两分钱:
我认为你的javascript没有尽早加载。因此,当某个人点击带有#
的链接时,他会被重定向到主页,并在网址上附加#
。
要解决此问题,您应该添加:
onclick="return false;"
到每个链接以及要调用其中包含#
的函数。
此外,尝试在页面加载之前加载您的javascript,方法是将脚本标记放在head部分中。这不是一个简洁的方法,但在这种情况下会帮助你。您可以稍后优化代码。
例如:
<ul>
<li><a href="#" onclick="addfile(); return false;" class="BA">Add Fil(es)</a></li>
<li><a href="/domain/admin/reports/boxin/index.php">Administration</a></li>
<ul>
我希望它有所帮助。
答案 1 :(得分:1)
使用void(0)或javascript:;而不是#
喜欢这个
<a href="javascript:;" onclick="addbox();" class="BA">Add Box(es)</a>
OR
<a href="javascript:void(0);" onclick="addbox();" class="BA">Add Box(es)</a>