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("menu");
element.addClass("menu");
//加载相应的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>

解决方案 »

  1.   

    是的执行了两次,一次 $(e.target) 为 li ,另外一次 $(e.target)为 label
      

  2.   

                    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;
                }