Como posso alterar a exibição de CSS ou bloquear a propriedade usando o jQuery?

429

Como posso alterar a exibição de CSS ou bloquear a propriedade usando o jQuery?

DEVOPS
fonte

Respostas:

923

A maneira correta de fazer isso é usar showe hide:

$('#id').hide();
$('#id').show();

Uma maneira alternativa é usar o método css do jQuery :

$("#id").css("display", "none");
$("#id").css("display", "block");
djdd87
fonte
@GenericTypeTea: #idusado para IDs, e se eu quiser usar class?
AabinGunz
26
$(".class").css("display", "none");
precisa saber é o seguinte
8
Eu tentei usar $('#id').css('display', 'none');, mas não funcionou. No entanto, usar $('#id').css('color', 'red');funciona. Não sei por que, no entanto. Alguém tem alguma idéia? Desde já, obrigado.
David
5
Também vale a pena incluir a diferença entre $ ('# id'). Hide () e $ ("# id"). Css ("display", "none") nesta resposta.
precisa saber é o seguinte
1
Há uma diferença entre dois, em que a função anterior oculta apenas o texto e não libera um espaço ocupado por um elemento, enquanto o último oculta o conteúdo e libera o espaço ocupado pelo elemento cocern
Dila Gurung,
110

Existem várias maneiras de conseguir isso, cada uma com seu próprio objetivo.


1. ) Para usar inline enquanto simplesmente atribui a um elemento uma lista de coisas a fazer

$('#ele_id').css('display', 'block').animate(....
$('#ele_id').css('display', 'none').animate(....

2. ) Para usar ao definir várias propriedades CSS

$('#ele_id').css({
    display: 'none'
    height: 100px,
    width: 100px
});
$('#ele_id').css({
    display: 'block'
    height: 100px,
    width: 100px
});

3. ) Para chamar dinamicamente o comando

$('#ele_id').show();
$('#ele_id').hide();

4. ) Alternar dinamicamente entre bloco e nenhum, se for um div

  • alguns elementos são mostrados como inline, inline-bloco, ou de mesa, de acordo com a Ta g de N ame

$ ('# ele_id'). toggle ();

SpYk3HH
fonte
27

Se a exibição da div estiver bloqueada por padrão, você pode simplesmente usar .show()e .hide(), ou ainda mais simples, .toggle()alternar entre a visibilidade.

reko_t
fonte
É verdade que ele definirá a exibição para o que foi inicialmente, o que poderia ser um bloco ou algo diferente.
Danielgwood
9

Para ocultar:

$("#id").css("display", "none");

Para mostrar:

$("#id").css("display", "");
Phanikumar Jatavallabhula
fonte
6

Outra maneira de fazer isso usando o método CSS jQuery:

$("#id").css({display: "none"});
$("#id").css({display: "block"});
Miguel
fonte
5

Maneira simples:

function displayChange(){
$(content_id).click(function(){
  $(elem_id).toggle();}

)}
user3726824
fonte
Uma explicação estaria em ordem.
Peter Mortensen
2
(function($){
    $.fn.displayChange = function(fn){
        $this = $(this);
        var state = {};
        state.old = $this.css('display');
        var intervalID = setInterval(function(){
            if( $this.css('display') != state.old ){
                state.change = $this.css('display');
                fn(state);
                state.old = $this.css('display');
            }
        }, 100);        
    }

    $(function(){
        var tag = $('#content');
        tag.displayChange(function(obj){
            console.log(obj);
        });  
    })   
})(jQuery);
Pham
fonte
Uma explicação estaria em ordem.
Peter Mortensen
2

Caso deseje ocultar e mostrar um elemento, dependendo se ele já está visível ou não, você pode usar alternar em vez de .hide()e.show()

$('elem').toggle();
Vladimir verleg
fonte
1

.hide () não funciona no Chrome para mim.

Isso funciona para ocultar:

var pctDOM = jQuery("#vr-preview-progress-content")[0];
pctDOM.hidden = true;
jimver04
fonte
0

No meu caso, eu estava exibindo / ocultando elementos de um formulário, dependendo se um elemento de entrada estava vazio ou não, de modo que, ao ocultar os elementos, o elemento após os ocultos fosse reposicionado ocupando seu espaço, era necessário fazer um float: left do elemento desse elemento. Mesmo usando um plugin como DependOn era necessário usar float.

user2341112
fonte
0

Usa isto:

$("#id").(":display").val("block");

Ou:

$("#id").(":display").val("none");
Trikaldarshi
fonte
Eu tenho problema não o seu trabalho para mim :(.<style> #choosepath { display: none; } </style> <script> $(document).ready(function () { $('#btn_journey').click(function () { alert("button click"); $('#choosepath').css({"display":"normal"}); }); }); </script> </head> <body> <a href="#" class="btn btn-primary btn-lg" id="btn_journey">Start your journey</a> <div class="col-lg-3 col-md-6 mb-4" id="choosepath"> </div> </body></html>
jaibalaji
0

Usar:

$(#id/.class).show()
$(#id/.class).hide()

Este é o melhor caminho.

Saeed Ahmed
fonte