Jquery给元素同时绑定多个事件后产生的问题

kinghome 2012-03-02 05:18:01
function setMainMenuEvent()
{
$("#menulist").find("li").each(function(){
$(this).bind("click mouseover",function(event){
MainMenu_EventHandler(event)
});

})
}
function MainMenu_EventHandler(e)
{
var element = $(e.target);
var selIndex = element.parent("ul").find("li").index(element);
switch((e.type).toLowerCase())
{
case"click":
element.siblings().removeClass("menumark");
element.addClass("menumark");
//加载相应的slide
break;

case"mouseover":
var stepVal = parseInt(0 - selIndex) * $("#menuicon").width();//移动步长
//alert("索引:"+selIndex +"\n 移动:"+ stepVal);
$("#menuicon").children("ul").animate({marginLeft:stepVal},1000);
break;
}
}
使用以下方法为 menulist 下的每个 li 元素 绑定 click mouseover 事件后,当触发 mouseover 事件后
case"mouseover": 这个部分的代码会执行多次,每次获得的值都不尽相同。请问这个什么原因造成的啊?
迷茫中..... 求解答

<div id="menuicon">
<ul>
<li><img src="biz/Img/menu/1.png"></li>
<li><img src="biz/Img/menu/2.png"></li>
<li><img src="biz/Img/menu/3.png"></li>
<li><img src="biz/Img/menu/4.png"></li>
</ul>
</div>
<div id="menulist">
<ul>
<li><label> What we are working on</label></li>
<li><label>在线工具</label></li>
<li><label>关于我们</label></li>
<li><label>职业规划</label></li>
</ul>
</div>
...全文
352 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
痞子虫 2012-03-03
  • 打赏
  • 举报
回复


case"mouseover":
var stepVal = parseInt(0 - selIndex) * $("#menuicon").width();//移动步长
//alert("索引:"+selIndex +"\n 移动:"+ stepVal);
$("#menuicon").children("ul").animate({marginLeft:stepVal}, 1000);
e.preventDefault();
e.stopPropagation();
break;
}

kinghome 2012-03-03
  • 打赏
  • 举报
回复
是的执行了两次,一次 $(e.target) 为 li ,另外一次 $(e.target)为 label
zell419 2012-03-02
  • 打赏
  • 举报
回复
估计是冒泡了 ?是多次执行了吗 ? 。

87,989

社区成员

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

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