Díky Kip, pro ty, kteří mohou mít zájem na dosažení stejných pomocí $ (toto), zatímco iterace nebo sdružování v rámci funkce:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Podíval jsem se na chvíli při práci tento projekt, ale nemohl najít dobrý příklad, takže doufám, že to pomáhá ostatním, kteří mohou být, kteří chtějí řešit stejný problém.
Ve výše uvedeném příkladu, mým cílem bylo skrýt rozhlasové vstupy a styl štítků poskytovat gumák uživatelské zkušenosti (změna orientace diagramu).
Můžete vidět příklad zde
Pokud se vám líbí příklad, tady je 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;}
a příslušná část JavaScriptu:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Střídavá kořen k původní otázce, vzhledem k tomu, štítek následuje vstup, mohli byste jít s čistým css řešení a vyhnout se používání JavaScript úplně ...:
input[type=checkbox]:checked+label {}