CSS:我如何能实现的功能,一个事件侦听
.motionContainerMenu{
width: 100%;
height: 30px;
position: relative;
margin: auto;
margin-bottom: -7px;
border: 2px solid red
}
.motionTop{
position:absolute;
border:2px solid blue;
background-color: red;
height:10px;
width:100%
}
HTML:
<nav>
<ul>
<li>
<a href="transcript.php">Test one</a>
<div class="motionContainerMenu">
<div class="motionTop"></div>
</div>
</li>
<li>
<a href="contact.php">TestTwo</a>
<div id="motionContainerMenu">
<div class="motionTop"></div>
</div>
</li>
</ul>
</nav>
的Javascript:
function focusMenu(x) {
x.style.borderColor = "#fff";
x.style.height = "30px";
x.style.backgroundColor = "#555"
}
var elements = document.querySelectorAll(".motionTop");
for (var i = 0; i < elements.length; i++) {
elements[i].addEventListener("mouseover", function() { focusMenu(x) });
};
在代码的最后一行我希望每个.motionTop独立行事。我删除了focusMenu(x)并用Alert替换它。我使用警报来测试代码,它的工作方式正是我想要的。但是,我无法弄清楚如何让这行代码接受focusMenu函数。我是JavaScript新手(在发布之前,我做了大量的研究)。 谢谢你的任何建议。
什么'x'传递给'focusMenu'?它没有定义,也许你想'event.currentTarget' – Cohars
'x'导致focusMenu()方法不被执行。尝试将代码放入jsfiddle.net并在那里运行。你会马上看到错误。删除它并在focusMenu()代码中添加一个'debugger;'关键字将显示侦听器将工作。 – Clomp
好的,谢谢你看我的代码。 – Mel