web-dev-qa-db-fra.com

comment puis-je voir un contrôle invisible avec jquery (masquer et afficher ne fonctionne pas)

Comment puis-je changer la visibilité d'un contrôle avec jQuery? J'ai un contrôle que sa propriété visible sur false ... (pas css)

Quand j'ai utilisé la fonction show() car il ne s'est rien passé, il semble que les méthodes hide() et show() sont pour l'ensemble css d'un contrôle, pas une propriété visible ...

Merci pour vos réponses,

Meilleures salutations

15
SilverLight

Vous ne pouvez pas faire cela avec jQuery, visible="false" Dans asp.net signifie que le contrôle n'est pas rendu dans la page . Si vous voulez que le contrôle aille au client, vous devez faire style="display: none;" Pour qu'il soit en fait dans le HTML, sinon il n'y a littéralement rien à montrer au client, puisque l'élément n'était pas dans le HTML envoyé par votre serveur .

Si vous supprimez l'attribut visible et ajoutez l'attribut style, vous pouvez alors utiliser jQuery pour l'afficher, comme ceci:

$("#elementID").show();

Ancienne réponse (avant patrick's catch)

Pour modifier visibility, vous devez utiliser .css() , comme ceci:

$("#elem").css('visibility', 'visible');

Sauf si vous avez besoin que l'élément occupe l'espace de la page, utilisez display: none; Au lieu de visibility: hidden; Dans votre CSS, puis faites simplement:

$("#elem").show();

Les fonctions .show() et .hide() traitent avec display au lieu de visibility, comme la plupart des fonctions jQuery :)

34
Nick Craver

.show () et .hide () modifient la règle d'affichage css. Je pense que tu veux:

$(selector).css('visibility', 'hidden'); // Hide element
$(selector).css('visibility', 'visible'); // Show element
7
Harold1983-

Voici un code que j'utilise pour gérer cela.

Nous montrons d'abord l'élément, qui définit généralement le type d'affichage sur "block" via la fonction .show (), puis définit la règle CSS sur "visible":

jQuery( '.element' ).show().css( 'visibility', 'visible' );

Ou, en supposant que la classe qui cache l'élément est appelée cachée, comme dans Twitter Bootstrap, toggleClass () peut être utile:

jQuery( '.element' ).toggleClass( 'hidden' );

Enfin, si vous voulez enchaîner des fonctions, peut-être avec fantaisie avec un effet de fondu, vous pouvez le faire comme suit:

jQuery( '.element' ).css( 'visibility', 'visible' ).fadeIn( 5000 );
1
Andy