2015-08-24 126 views
0

我正在研究这个项目,我真的被困在一件事情上:我想在一个html文件中创建一个子菜单,包含所有的子页面。HTML标记<a> href和onclick

每当我同时使用hrefonclick它不起作用。

它只适用于当我将href更改为“#”,但这会使页面无法从其他页面访问。

请注意,更改函数的返回值不会有帮助。

非常感谢!

这里是我的HTML:再次

<script> 
function show(shown, hidden, hidden2) { 
    document.getElementById(shown).style.display='block'; 
    document.getElementById(hidden).style.display='none'; 
    document.getElementById(hidden2).style.display='none'; 
    return true; 
} 
</script> 

<ul>     
<li><a href="../info/index.html" onclick="return show('Page1','Page2','ṕage3');">Doelstelling</a></li> 
<li><a href="../info/index.html" onclick="return show('Page2','Page1','ṕage3');">Bestuur</a></li> 
<li><a href="../info/index.html" onclick="return show('Page3','Page1','ṕage2');">Lid worden</a></li> 
</ul> 

<div id="Page1" style="display:none"> 
<a href="#" onclick="return show('Page2','Page1','ṕage3');">Bestuur</a></br> 
<a href="#" onclick="return show('Page3','Page1','ṕage2');">Lid worden</a> </br> 
<p> 

text 

</p> 

</div></br> 

<div id="Page2" style="display:none"> 
<a href="#" onclick="return show('Page1','Page2','ṕage3');">Doelstelling</a> </br> 
<a href="#" onclick="return show('Page3','Page1','ṕage2');">Lid worden</a></br> 
<p> 

text 

</div></br> 
    <div id="Page3" style="display:none"> 
<a href="#" onclick="return show('Page1','Page2','ṕage3');">Doelstelling</a> </br> 
<a href="#" onclick="return show('Page2','Page1','ṕage3');">Bestuur</a></br> 
    <p> 
text 
</p> 

</div></br> 

感谢。

回答

2

return false;,因为一个错误这行代码之前触发不帮你。

看看你的show函数调用:你通过'ṕage3'作为第三个参数,然后你做document.getElementById(hidden2).style.display = ...。但是你没有id =“ṕage3”的元素。

更换'ṕage3''Page3',这应该做的我都试过了招

+1

另外OP有他们的代码中的'ṕage2'。 –

+0

OMG我很愚蠢..谢谢你的帮助! –

0

您需要在OnClick中返回false。 由于您在onclick中调用show,因此请返回false而不是true。

<script> 
function show(shown, hidden, hidden2) { 
    document.getElementById(shown).style.display='block'; 
    document.getElementById(hidden).style.display='none'; 
    document.getElementById(hidden2).style.display='none'; 
    return false; 
} 
</script> 

当用户点击锚(标签)时,它将首先执行onclick。如果onclick返回false,它将停止。如果onclick返回true,那么它将继续默认行为并将窗口位置更改为href属性的值。

+0

,但这并不改变在这种情况下任何东西。 –

+0

嗯,是的,因为你在onclick的地方有一个拼写错误的地方,你使用的是'ṕage3'而不是'Page3'和'ṕage2'而不是'Page2'。当它尝试通过id获取元素并且它们不存在时,这会在JavaScript中导致错误。 --update:看起来像Curious已经指出,虽然:) – mason81

0

您需要使用event.preventDefault();禁用JavaScript中的默认事件处理。

0

$("a").click(function() 
 
{ 
 
    alert(1); 
 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="http://google.com">Text</a>

不要使用onclick 2015年