我使用ul
和制作了一个菜单栏,并且li
希望一些onClick
事件链接到JavaScript函数。
但这不起作用,单击菜单根本没有任何作用。
该函数在我已经使用过的JS文件上,并且在另一个元素上进行了测试,看来id仅在我的内部不起作用li
。
这是HTML:
<div id="header">
<div id="titleContainer">
blablabl
</div>
<ul id="menuContainer">
<li class="menuItem" id="videoMenu">
<a href="#" onClick="showAbout2();"> Video</a>
</li>
<li class="menuItem" id="playlistMenu">
Playlist
</li>
<li class="menuItem" id="aboutMenu">
About
</li>
<li class="menuItem" id="controlsMenu">
Controls
</li>
</ul>
</div>
CSS:
#titleContainer
{
box-shadow: 0px 0px 5px #000;
color: lightgrey;
font-size: 20px;
font-weight: bold;
line-height: 50px;
text-align: center;
}
#menuContainer
{
background-color: #333333;
line-height: 35px;
margin: 0;
position: relative;
text-align: center;
z-index: -1;
}
#menuContainer li
{
display: inline;
list-style: none;
}
JS:
function showAbout2()
{
console.log("bonjour");
}
回答:
答案是:
删除z-index。
我想单击一个较低层的元素。因此,我将尝试使用此http://www.vinylfox.com/forwarding-mouse-events-through-layers/
感谢大家 : )
删除z-index
上的#menuContainer
。这将导致#menuContainer
落后,因此阻止了点击事件的发生/生效。
#menuContainer
{
background-color: #333333;
line-height: 35px;
margin: 0;
position: relative;
text-align: center;
z-index: -1; /*Remove this line.*/
}
function showAbout2() {
console.log("bonjour");
}
#titleContainer {
box-shadow: 0px 0px 5px #000;
color: lightgrey;
font-size: 20px;
font-weight: bold;
line-height: 50px;
text-align: center;
}
#menuContainer {
background-color: #333333;
line-height: 35px;
margin: 0;
position: relative;
text-align: center;
}
#menuContainer li {
display: inline;
list-style: none;
}
<div id="header">
<div id="titleContainer">blablabl</div>
<ul id="menuContainer">
<li class="menuItem" id="videoMenu"> <a href="#" onClick="showAbout2();"> Video</a>
</li>
<li class="menuItem" id="playlistMenu">Playlist</li>
<li class="menuItem" id="aboutMenu">About</li>
<li class="menuItem" id="controlsMenu">Controls</li>
</ul>
</div>
以下更新不是原始问题的一部分,而是根据您对答案的评论添加的。
似乎删除z-index: -1
会破坏box-shadow
您网站上的效果,因为它将元素重新带到了最前面。为了克服这个问题,请在原始答案中提到的项目中#titleContainer
以及#mainContent
删除后添加以下行
z-index: 2;
position: relative;
这将使阴影重新出现,因为#menuContainer
我们将其他两个放在前面而不是发送出去。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句