Potrzebuję div, aby stracić stylizacji, gdy wybrany został przycisk radiowy.
Jego aktualna stylizacja to:
#packages-and-payment{
opacity: 0.4;
pointer-events:none;
}
Potrzebuję krycia do usunięcia, a zdarzenia wskaźnikowe do pracy ponownie. Próbowałem tego w jQuery:
$(function() {
if ( $('input:radio:checked').length > 0 ) {
$( '#packages-and-payment' ).css( "opacity", "0" );
$( '#packages-and-payment' ).css( "pointer-events", "" );
}
});
Ale to nie działa?
Co robię źle lub jest lepsze rozwiązanie?
Potrzebuję krycia do usunięcia, więc staje się w pełni widoczne.
EDYTUJ
Oto skrzypce:
3 odpowiedzi
Ustawienie opacity
do 0 odbędzie element całkowicie niewidoczny. Jeśli chcesz, aby było widoczne, musisz ustawić krycie do 1 zamiast tego:
$( '#packages-and-payment' ).css( "opacity", "1" );
Równie, aby zresetować właściwość pointer-events
do jego wartości początkowej, musisz ustawić go do "Auto" (w rzeczywistości, ustawienie go "" jest równoważne, aby ustawić go do false
, który jest interpretowany Jako "Brak"):
$( '#packages-and-payment' ).css( "pointer-events", "auto" );
Znacznie ładniejszy sposób ustawienia obu jednocześnie jest przekazanie obiektu do metody jQuery's {x0}} zamiast:
$( '#packages-and-payment' ).css({
opacity: 1,
pointerEvents: 'auto'
});
Aby wywołać to, aby się zdarzyć, gdy przycisk zostanie sprawdzony, musisz użyć obsługi imprezy:
$('input:radio').on('change', function() {
if ($('input:radio:checked').length > 0)
...
});
Przez .css("pointer-events", "");
Przywracasz zdarzenia wskaźnikowe, jak opisano w CSS (tj. Nie), więc lepiej użyj .css("pointer-events", "auto");
.
Spróbuj tego:
$(function() {
if ( $('input:radio:checked').length > 0 ) {
$( '#packages-and-payment' ).css( "opacity", "1" );
$( '#packages-and-payment' ).css( "pointer-events", "auto" );
}
});