Ευχαριστώ Kip, για εκείνους που μπορεί να ψάχνει για την επίτευξη των ίδιων χρησιμοποιώντας $ (αυτό), ενώ την επανάληψη ή τη συμμετοχή σε μια συνάρτηση:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Κοίταξα για μια στιγμή, ενώ εργάζονται αυτό το έργο, αλλά δεν μπορούσε να βρει ένα καλό παράδειγμα τόσο Ελπίζω ότι αυτό βοηθά τους άλλους που μπορεί να ψάχνει για την επίλυση το ίδιο θέμα.
Στο παραπάνω παράδειγμα, ο στόχος μου ήταν να κρύψει το ραδιόφωνο εισόδους και το στυλ των ετικετών για να παρέχουν μια πιο λεία εμπειρία του χρήστη (αλλάζοντας τον προσανατολισμό του διαγράμματος ροής).
Μπορείτε να δείτε ένα παράδειγμα εδώ
Αν σας αρέσει το παράδειγμα, εδώ είναι το CSS:
.orientation { position: absolute; top: -9999px; left: -9999px;}
.orienlabel{background:#1a97d4 url('http://www.ifreight.solutions/process.html/images/icons/flowChart.png') no-repeat 2px 5px; background-size: 40px auto;color:#fff; width:50px;height:50px;display:inline-block; border-radius:50%;color:transparent;cursor:pointer;}
.orR{ background-position: 9px -57px;}
.orT{ background-position: 2px -120px;}
.orB{ background-position: 6px -177px;}
.orienSel {background-color:#323232;}
και το σχετικό μέρος του JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Μια εναλλακτική ρίζα στο αρχικό ερώτημα, με δεδομένη την ετικέτα ακολουθεί την είσοδο, θα μπορούσατε να πάτε με μια καθαρή λύση CSS και να αποφεύγουν τη χρήση JavaScript εντελώς ...:
input[type=checkbox]:checked+label {}