2016-06-07 2 views
3

Ich benutze jQuery, um eine Klasse zu einer Radio-Box hinzuzufügen, wenn sie ausgewählt ist. Das funktioniert gut, aber es entfernt nicht die Klasse bei der Auswahl einer anderen Radio-Box.jQuery Klasse zur Radio-Box hinzufügen nicht entfernt

Was fehlt mir?

jQuery(".checkbox-radio").change(function() { 
    if ($(this).is(':checked')) 
     $(this).closest(".radio-inline").addClass("selected"); 
    else 
     $(this).closest(".radio-inline").removeClass("selected"); 
}); 
<label class="radio-inline conf-option-1"> 
    <input type="radio" class="checkbox-radio" name="configoption[1]" value="1" checked="checked" onclick="prodconfrecalcsummary()"> 
    <i class="icon-addon"></i> 
    <span class="addon-qty"></span> 
    <span class="addon-text">Text</span> 
    <span class="addon-price"> Text </span> 
</label> 

<label class="radio-inline conf-option-2"> 
    <input type="radio" class="checkbox-radio" name="configoption[2]" value="2" checked="checked" onclick="prodconfrecalcsummary()"> 
    <i class="icon-addon"></i> 
    <span class="addon-qty"></span> 
    <span class="addon-text">Text</span> 
    <span class="addon-price"> Text </span> 
</label> 

<label class="radio-inline conf-option-3"> 
    <input type="radio" class="checkbox-radio" name="configoption[3]" value="3" checked="checked" onclick="prodconfrecalcsummary()"> 
    <i class="icon-addon"></i> 
    <span class="addon-qty"></span> 
    <span class="addon-text">Text</span> 
    <span class="addon-price"> Text </span> 
</label> 
+2

u kann eine Geige für sie geben? –

Antwort

1

entfernen selected Klasse von allen .radio-inline und dann hinzufügen/entfernen selected wie pro Zustand, wie unten gezeigt.

<script> 
jQuery(".checkbox-radio").change(function() { 
    $(".radio-inline").removeClass("selected"); //add this 
    if ($(this).is(':checked')){ 
    $(this).closest(".radio-inline").addClass("selected"); 
    } 
    else 
    $(this).closest(".radio-inline").removeClass("selected"); 
}); 
</script> 

DEMO

+0

Funktioniert perfekt! Vielen Dank!! –

+0

@ HenkZ..sind willkommen .. !! –

1
The name attribute should be the same for all your check-boxes 
See here: 

JSFIDDLE

+0

Danke! Ich habe das versucht, aber das entfernt auch nicht die Klasse, wenn ich auf einen anderen Radio-Button umschalte. –

+0

Sie brauchen keine Klasse, um jetzt das ausgewählte Kontrollkästchen zu verwenden: attr. ('Checked') – AlexBerd

0
jQuery(".checkbox-radio").on('click',function() { 
if ($(this).is(':checked')) 
$(this).closest(".radio-inline").addClass("selected"); 
else 
$(this).closest(".radio-inline").removeClass("selected"); 
}); 
0

Verwenden ähnliche

$(".radio-inline").click(function() { 

    $(".radio-inline").find("input").removeClass("selected"); 

    if ($(this).find("input").is(':checked')){  
     $(this).find("input").addClass("selected"); 
    } 

}); 
Verwandte Themen