删除div不透明度并使用jQuery在样式中应用指针事件

时间:2014-08-13 13:55:37

标签: javascript jquery css

当选择了任何单选按钮时,我需要一个div来丢失它的样式。

目前的造型是:

#packages-and-payment{
    opacity: 0.4;
    pointer-events:none;
}

我需要移除不透明度并使指针事件再次起作用。我一直在jQuery中尝试这个:

$(function() {

if ( $('input:radio:checked').length > 0 ) {
    $( '#packages-and-payment' ).css( "opacity", "0" );
    $( '#packages-and-payment' ).css( "pointer-events", "" );
}

});

但它没有用?

我做错了什么或有更好的解决方案?

我需要移除不透明度,以便完全可见。

修改

这是一个小提琴:

http://jsfiddle.net/t9edq74u/

3 个答案:

答案 0 :(得分:0)

opacity设置为0将使元素完全不可见。如果您希望它可见,则需要将不透明度设置为1:

$( '#packages-and-payment' ).css( "opacity", "1" );

同样要将pointer-events属性重置为其初始值,您需要将其设置为“自动”(实际上,将其设置为“”相当于将其设置为false,被解释为“无”):

$( '#packages-and-payment' ).css( "pointer-events", "auto" );

同时设置两者的更好方法是将对象传递给jQuery的css()方法:

$( '#packages-and-payment' ).css({
    opacity: 1,
    pointerEvents: 'auto'
});

要在选中单选按钮时触发此操作,您需要使用事件处理程序:

$('input:radio').on('change', function() {
    if ($('input:radio:checked').length > 0)
        ...
});

答案 1 :(得分:0)

通过.css("pointer-events", "");您正在恢复CSS中描述的指针事件(即无),因此请更好地使用.css("pointer-events", "auto");

答案 2 :(得分:0)

试试这个:

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