两个相同的id,只有一个有效果

来源:3-4 改进代码--JS第二次尝试

慕UI7829676

2019-02-22 14:35

<ul id="rating" class="rating">

<li class="rating-item" title="很不好"></li>

<li class="rating-item" title="不好"></li>

<li class="rating-item" title="一般"></li>

<li class="rating-item" title="好"></li>

<li class="rating-item" title="很好"></li>

</ul>

<ul id="rating" class="rating">

<li class="rating-item" title="很不好"></li>

<li class="rating-item" title="不好"></li>

<li class="rating-item" title="一般"></li>

<li class="rating-item" title="好"></li>

<li class="rating-item" title="很好"></li>

</ul>

<script>

       // 自我执行的匿名函数,不需要调用

     var rating = (function() {

       var lightOn = function($item,num) {

           $item.each(function(index) {

             if (index < num) {

               $(this).css("background-position", "0 -26px");

             } else {

               $(this).css("background-position", "0 0");

             }

           });

         };

       var init = function(el, num) {

         var $rating = $(el);

         var $item = $rating.find(".rating-item");


         lightOn($item,num);

         //事件委托,子元素事件委托给父元素处理

         $rating

           .on("mouseover", ".rating-item", function() {

             lightOn($item,$(this).index() + 1);

           })

           .on("click", ".rating-item", function() {

             num = $(this).index() + 1;

           })

           .on("mouseout",function() {

             lightOn($item,num);

           });

       };


       //Jquery插件

       $.fn.extend({

           rating:function(num){

             console.log(this);

             return this.each(function(){

                 init(this,num)

             });

           // return init(this,num)

           }

       });

       return{

           init:init

       };

     })();


     rating.init('#rating',3);

    // $('#rating').rating(1)

   </script>


写回答 关注

1回答

  • 慕UI7829676
    2019-02-22 14:39:11

    如果有相同的ID,javascript只会取第一个具有该ID的标签

星级评分原理和实现(上)

本课程主要讲解如何使用不同的方式来实现星级评分的效果.

25809 学习 · 109 问题

查看课程

相似问题