2012-04-16 86 views
0

我的代碼是:如何統計兄弟元素點擊次數,並在所有兄弟姐妹被點擊後更改CSS?

<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改變其類時,
同上4個格旁邊的標籤2

+0

另外,我想知道你已經嘗試什麼關於你的要求 – 2012-04-16 04:09:15

+0

我不知道如何找到的div被點擊數的該標籤和計數旁邊的標籤 – 2012-04-16 04:10:01

+0

我有**答案**它[>> HERE <<](http://jsfiddle.net/mplungjan/bKYQ3/)使用[nextUntil](http://api.jquery.com/nextUntil/ )。如果這個問題再次打開,我希望我會被允許/能夠粘貼答案。 – mplungjan 2012-10-17 14:15:33

回答

0

DEMO

$(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]); 

     } 
    }); 
    }); 
});