我需要做个排行榜,需要做到鼠标移到哪个li时,那个li的样式就变为on,移出li则removeclass,默认第一个为on,而移出ul时候则停留当前的on不变讲起来很麻烦,看图,或者去当当网首页右侧的促销活动或新客购入版块。下图为默认第一个为on
下图为鼠标经过第二个li时的效果,鼠标离开ul范围,则停留on为当前所在的位置。
要用jquery来做。请大家帮忙!
下图为鼠标经过第二个li时的效果,鼠标离开ul范围,则停留on为当前所在的位置。
要用jquery来做。请大家帮忙!
$("li").hover(
function () {
$(this).addClass("on");
},
function () {
$(this).removeClass("on");
}
);
$('ul li').hover(function(){$(this).addClass('on');},function(){$(this).removeClass('on');})
<style>
ul li.on{color:red}
</style><ul id="ulId">
<li class="on">北京大学<p>隐藏图文,只有li样式为on时显示</p></li>
<li>清华大学<p style="display:none">隐藏图文,只有li样式为on时显示</p></li>
<li>复旦大学<p style="display:none">隐藏图文,只有li样式为on时显示</p></li>
</ul>$(function(){ var el = $("#ulId"),
obj = el.find(".on");
el.mouseover(function(e){
var target = e.target;
if (target.tagName === "LI"){
if (obj){
obj.removeClass();
obj.find("p").hide();
}
$(target).addClass("on");
obj = $(target);
obj.find("p").show();
}
})
})
那就在移入的时候先清除下 ,移出不做什么了 。$("#ul li").bind("mouseover",function(){
$("#ul li").removeClass("on");//先全都删除
$(this).addClass("on");//再给当前的li添加样式 。
});
var curIndex=0;//记录当前的li
$(function()
{
$("#ulEx li").hover(function(){$(this).addClass('on');$("#ulEx li").not($(this)).removeClass('on');curIndex=$("#ulEx li").index($(this));},function(){$(this).removeClass('on');})
$("#ulEx").hover(function(){$(this).children().filter(':eq('+curIndex+')').hover();},function(){})
}
试试
6楼的,我试试,“移出 ul的时候 要保持最后的on”。这个才是这个帖子的重点。
$('ul li').mouseover(function(){
$(this).addClass('on').siblings().removeClass('on')
})
不行直接找我