前端

jQuery五角星评分(end方法)

2022-03-18  本文已影响0人  马佳乐

当鼠标移入空心五角星时,该五角星和其前面的五角星变成实心。鼠标离开时,所有五角星为空心。
当鼠标点击某一空心五角星时,该五角星和其前面的五角星变为实心的。鼠标离开,保持不变。

代码:

<!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>五角星评分案例</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            .comment {
                font-size: 40px;
                color: red;
            }
            
            .comment li {
                float: left;
            }
            
            ul {
                list-style: none;
            }
        </style>

    </head>

    <body>
        <ul class="comment">
            <li>☆</li>
            <li>☆</li>
            <li>☆</li>
            <li>☆</li>
            <li>☆</li>
        </ul>
    </body>

</html>
<script src="js/jquery.js"></script>
<script>
    $(function() {

        //1. 给li注册鼠标经过事件,让自己和前面所有的兄弟都变成实心,后面的li为空心
        var wjx_k = "☆";
        var wjx_s = "★";
        $(".comment>li").on("mouseenter", function() {
//          //让自己和前面所有的兄弟都变成实心
//          $(this).text(wjx_s).prevAll().text(wjx_s);
//          //后面的li为空心
//          $(this).nextAll().text(wjx_k);

                //与上面代码等价
                $(this).text(wjx_s).prevAll().text(wjx_s).end().nextAll().text(wjx_k);
        });

        //2. 给ul注册鼠标离开事件,让所有的li都变成空心
        $(".comment>li").on("mouseleave", function() {
            $(".comment>li").text(wjx_k);

            //点击事件又离开的事件,找到current,让current和current前面的变成实心就行。
            $("li.current").text(wjx_s).prevAll().text(wjx_s);
        });

        //3. 给li注册点击事件
        $(".comment>li").on("click", function() {
            $(this).addClass("current").siblings().removeClass("current");
        });

    });
</script>
上一篇下一篇

猜你喜欢

热点阅读