下拉菜单疑问,新手提问

renmiaoxin 2014-05-16 11:45:04
我做的是菜单的下拉功能的例子,我看不明白,请大家指教下,红字标出的是我有疑问的地方。
初学js请大家帮帮忙。
如果不想看我的例子,那我请大家给我一个下拉菜单的例子,让我学习下。谢谢
window.onload = initAll;
function initAll() {
var allLinks = document.getElementsByTagName("a");
for (var i=0; i<allLinks.length; i++)
{
if (allLinks[i].className.indexOf("menuLink") > -1)
{
allLinks[i].onmouseover = toggleMenu;//当鼠标移到这里就准备下拉

}
}
}
function toggleMenu() {//in
var startMenu = this.href.lastIndexOf("/")+1;
var stopMenu = this.href.lastIndexOf(".");
var thisMenuName = this.href.substring(startMenu,stopMenu);//得到下拉的名字
document.getElementById(thisMenuName).style.display = "block";//打开菜单行A
this.parentNode.className = thisMenuName;//这里我就不是很明白了,为什么要这样呢,就是为了给下面的函数做参数?
this.parentNode.onmouseout = function {
document.getElementById(this.className).style.display = "none";行B
}
this.parentNode.onmouseover =function {
document.getElementById(this.className).style.display = "block";行C
}行D
}
后面这两个函数就更不明白了,我没看明白这个this是怎么回事,我用firebug调试,我是按F11
开始this是a,执行行A,
打开菜单,后来进入行D
再按F11就到了行C
然后就结束了
当我移动鼠标进入菜单时,进入行B,菜单关闭,this变成了div,那他的父是body啊,那我这个函数是离开body时近的?
再F11就进入了行C,菜单打开
再F11就进入了行B,菜单关闭
再F11就进入了行C,菜单打开
看的我好糊涂啊。
<body>
h1>Shakespeare's Plays</h1>
<div>
<a href="menu1.html" class="menuLink">Comedies</a>
<div class="menuid1">
<ul class="menu" id="menu1">
<li><a href="pg1.html">All's Well That Ends Well</a></li>
<li><a href="pg2.html">As You Like It</a></li>
<li><a href="pg3.html">Love's Labour's Lost</a></li>
<li><a href="pg4.html">The Comedy of Errors</a></li>
</ul>
</div>
</div>
<div>
</body>


...全文
45 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧