jQuery做二级菜单(模仿京东),非常方便,只需要hover就行了。
正好完成一个mouseover和mouseout就实现这个功能了,但是,如果菜单需要延迟关闭或者通过其他形式来关闭就有点不方便了。
现在网上的很多现成的,都是把子菜单层放在mouseover对象的层内。所以mouseover,mouseout的时候就不用担心了,只要over的时候show,out的时候hide就成了。
不过,我昨天接到的是分别处于两个不同的div,两个div是并级关系。。于是就写了以下代码。
$(function(){
$('.first_div li').hover(
function(){
var selId = $(this).index('.first_div li');
var _self = this;
t = setTimeout(function(){
$('img',_self).attr('src',$('img',_self).attr('src').replace('normal','lightened'));
$('#second_div').show();
$('.sub1_div:eq('+selId+')').show().siblings().hide();
},250)
},
function(){
$('img',this).attr('src',$('img',this).attr('src').replace('lightened','normal'));
//$('#second_div').hide()
clearTimeout(t);
}
);
$('.absLeftMenu').mouseout(function(e){
var e = e || window.event, relatedTarget = e.toElement || e.relatedTarget;
while(relatedTarget && relatedTarget != this)
relatedTarget = relatedTarget.parentNode;
if(!relatedTarget)
$('#second_div').hide();
});
$('.sub1_div li').mouseover(
function(){
$('#sub2_div').show().html($(this).children('ul').html());
}
)
})
主要也是自己想做个笔记,在absLeftMenu的mouseout的时候,默认一下子就关闭了子层。这样就造成子层会一闪一闪。所以上了上面的代码。。。(抄来的)

评论 (1)