2015-10-22 215 views
1

我有4個單選按鈕隱藏在每個div內的每個圖像下。單選按鈕組jquery點擊事件

<div class="temp-inner" id="someid"> 
     <?php while($row = mysql_fetch_array($res)){?> 
      <div data-id="<?=$row['id'];?>" class="hand temp-selector"> 
       <input type="radio" name="templates_id" class="templates_id" value="<?=$row['id'];?>" /> 
       <label class="temp-type" style="background-image:url(<?=$row['src'];?>)"></label> 
      </div> 
     <? } ?> 
    </div> 

我需要單選按鈕下的圖像檢查=,所以我決定創建的onClick功能

$(".hand").on("click", function() { 
    $(this).children("input:radio[name=templates_id]").attr('checked',true); 
} 

這部分運行完美。現在我想添加新的類,如果單選按鈕被選中。我認爲我可以使用if - else語句,但它不起作用。

$(".hand").on("click", function() { 
    $(this).children("input:radio[name=templates_id]").attr('checked',true); 

    if($("input:radio[name=templates_id]").is(":checked")) { 
     $(".hand").addClass("active"); 
    } else { 
     $(".hand").removeClass("active"); 
    } 
}; 

我該如何正確書寫它? Thx很多,最好的問候!

回答

1

下面的代碼將檢查收音機的股利點擊,去除手類每格主動類並添加活動類到div點擊。

$(document).on('click', '.hand', function() { 
    $(this).children("input:radio[name=templates_id]").prop('checked', true); 
    $(".hand").removeClass("active"); 
    $(this).closest("div.hand").addClass("active"); 
}); 
+0

當然,我可以toggleClass ..但我需要刪除它,如果電臺 - 未選中。 ('click',function(){ $(this).children(「input:radio [name = templates_id]」)。attr('checked', true); $(this).toggleClass(「active」); }); '''在這種情況下 - 它只是將類添加到所有被點擊的div中,我只需要一個選中的廣播..並且div.active與它 – Yevgen

+0

如何取消選中廣播?只有檢查它的代碼。我編輯了我的答案和代碼來取消收音機。 – krlzlx

+0

我以爲我不需要取消收音機..它只是檢查下一個 – Yevgen

1

你可以使用length屬性,嘗試:

$(".hand").on("click", function() { 
    $(this).children("input:radio[name=templates_id]").attr('checked',true); 

    if($("input:radio[name=templates_id]").length > 0) { 
     $(".hand").addClass("active"); 
    } else { 
     $(".hand").removeClass("active"); 
    } 
};