2015-06-06 58 views
0

我想驗證了「質量」的元素被點擊檢查其子元素被點擊

$("#content").on('click', ".delinquent > .quality", function(){ 
    selected = this; 
    $(".quality", $(selected).parent()).each(function(){ 
     if (selected == this){ 
      $(this).toggleClass("selected", true); 
      $(this).toggleClass("unselected", false); 
     }else{ 
      $(this).toggleClass("selected", false); 
      $(this).toggleClass("unselected", true); 
     } 
    }); 
}) 

這是我嘗試使用的代碼,但它似乎並不認爲它的工作原理,因爲所有.quality跨度都有.selected類。

回答

0

我想我明白你在做什麼。您想要將選定的課程應用於點擊的高質量項目,並對其餘質量項目應用未選中的課程。假設所有的.quality元素是彼此的兄弟姐妹,你可以像這樣簡化你的代碼。

$("#content").on('click', ".delinquent > .quality", function(){ 
    $(this) 
     //Add selected class to the current item clicked 
     .removeClass('unselected').addClass('selected') 
     //Find all the siblings and add unselected class 
     .siblings().removeClass('selected').addClass('unselected); 
}) 
+0

就是這樣!謝謝! – otaviomad

0

Event Delegation在Javascript中是一件美妙的事情。

事件對象包含target,它是觸發事件的元素。你可以這樣訪問它:

$("#content").on('click', ".delinquent > .quality", function (e) { 
    console.log(e.target); 
});