我需要做个排行榜,需要做到鼠标移到哪个li时,那个li的样式就变为on,移出li则removeclass,默认第一个为on,而移出ul时候则停留当前的on不变讲起来很麻烦,看图,或者去当当网首页右侧的促销活动或新客购入版块。下图为默认第一个为on
下图为鼠标经过第二个li时的效果,鼠标离开ul范围,则停留on为当前所在的位置。
要用jquery来做。请大家帮忙!

解决方案 »

  1.   


    $("li").hover(
      function () {
        $(this).addClass("on");
      },
      function () {
        $(this).removeClass("on");
      }
    ); 
      

  2.   

    楼上的,你的这个我明白,但这个只是划过的时候才显示on,一旦鼠标移出ul范围,on样式也隐藏了,这就不是我希望的结果了。那样的话用css li:hover就成了。
      

  3.   


    $('ul li').hover(function(){$(this).addClass('on');},function(){$(this).removeClass('on');})
      

  4.   

    楼主怎么发2个内容差不多的贴。。
    <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();
           }
        }) 

    })
      

  5.   

    <ul><li></li></ul><ul><li></li></ul><ul><li></li><li></li></ul>你用的是哪种.
      

  6.   

    就是移出 ul的时候 要保持最后的on是把 ?
    那就在移入的时候先清除下 ,移出不做什么了 。$("#ul li").bind("mouseover",function(){
      $("#ul li").removeClass("on");//先全都删除
              $(this).addClass("on");//再给当前的li添加样式 。
    });
      

  7.   

    ul 的id设置为ulEx
    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(){})
    }
    试试
      

  8.   

    <ul><li></li><li></li></ul>,那是我发的帖子,但由于csdn无法修改,只好重开。
    6楼的,我试试,“移出 ul的时候 要保持最后的on”。这个才是这个帖子的重点。
      

  9.   

    有那么麻烦么?就定义mouseover的事件然后siblings removeclass不就结了?
    $('ul li').mouseover(function(){
        $(this).addClass('on').siblings().removeClass('on')
    })
    不行直接找我
      

  10.   

    OK了,谢谢你!果然是术业有专攻啊,看来我实在是需要学学js了,总是别人处理好好的,一旦想独立完成居然这般困难。