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


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");

@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 ();


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.


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


6

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

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

5

Maneira simples:

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

)}

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);

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();

1

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

Isso funciona para ocultar:

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

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.


0

Usa isto:

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

Ou:

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.