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:

http://jsfiddle.net/t9edq74u/

0
Smiter 13 sierpień 2014, 17:55

3 odpowiedzi

Najlepsza odpowiedź

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)
        ...
});
0
James Donnelly 13 sierpień 2014, 14:05

Przez .css("pointer-events", ""); Przywracasz zdarzenia wskaźnikowe, jak opisano w CSS (tj. Nie), więc lepiej użyj .css("pointer-events", "auto");.

0
Alex Salauyou 13 sierpień 2014, 13:59

Spróbuj tego:

$(function() {
    if ( $('input:radio:checked').length > 0 ) {
        $( '#packages-and-payment' ).css( "opacity", "1" );
        $( '#packages-and-payment' ).css( "pointer-events", "auto" );
    }
});
0
JayB 13 sierpień 2014, 14:00