0

我的代码是:

 <div class='container'>
   <label>Label 1</label>
   <div>1</div>
   <div>2</div>
   <div>3</div>
   <div>4</div>
   <div>5</div>
   <label>Label 2 </label>
   <div>1</div>
   <div>2</div>
   <div>3</div>
   <div>4</div>
  </div>

如果用户单击容器内的 div,我将像这样添加“单击”类

$(".container>div").click(function(){
  $(this).addClass("clicked");
});

我想知道每个标签旁边点击了多少个 div,当所有 div 都被点击后,我想为该标签添加一个 CSS 类

例如,当访问者单击标签 1 旁边的所有 5 个 div 时,更改其类别,
标签 2 旁边的 4 个 div 同上

4

1 回答 1

0

演示

$(function() {
  var counter = {};
  $(".container>label").each(function(idx) {
    var labelItem = "label"+idx;
    counter[labelItem]={max:$(this).nextUntil("label").size(), cnt:0, idx:idx};

    $(this).nextUntil("label").on("click",function() {
        if (this.className!="clicked") {
          $(this).addClass("clicked");
          counter[labelItem].cnt++;
          if (counter[labelItem].cnt >= counter[labelItem].max) {
              $(this).parent().find('label').eq(idx).addClass("full").append(" full");
          }
          $(this).append(" - clicked and added to "+labelItem+": "+counter[labelItem]);

        }
    });
  });
});
于 2012-10-18T16:25:37.493 回答