2010-07-27 5 views
0

J'ai une page ASP.Net dans laquelle j'ai une balise d'ancrage html et j'ai défini la propriété visible sur false. Je veux le rendre visible avec JQuery, mais je n'arrive pas à le faire fonctionner. J'ai essayé d'utiliser le sélecteur pour l'étiquette d'ancre elle-même, et aussi un sélecteur de classe, mais aucun n'a d'effet. Voici le balisage pour la balise d'ancrage:Afficher une balise Anchor dans une page ASP.Net avec JQuery

<a runat="server" class="reg" visible="false" id="RegisterSoftwareTab" href="../RegisterSoftware.aspx">Register Software</a> 

Et voici le code JQuery:

<script type="text/javascript" > 
    $(document).ready(function() { 
     $('a').attr("visible", "true"); 
     $('a').show(); 
     $('.reg').attr("visible", "true"); 
     $('.reg').show(); 
    }); 
</script> 
+0

Pouvez-vous montrer HTML généré pour cette balise, s'il vous plaît? –

+0

Nikita, je pense que c'est peut-être le problème, je suis allé voir la source de la page dans le navigateur, et il n'y a pas de code HTML pour ce lien. Il semble que le paramètre visible = "false" l'empêche de rendre le code html. Je pense que je vais essayer de changer la balise html en une balise asp. –

Répondre

1

visible n'est pas un attribut correct à utiliser; il n'est pas défini par le standard HTML. Vous pouvez utiliser l'attribut Visible uniquement sur un contrôle ASP.NET comme le asp:Button; Visible="false" sera ensuite rendu à un style="display:none", qui est conforme à HTML.

Si vous voulez masquer votre élément en utilisant une balise HTML normale, essayez d'utiliser la propriété display CSS directement dans la balise HTML:

<a runat="server" class="reg" style="display:none;" id="RegisterSoftwareTab" href="../RegisterSoftware.aspx">Register Software</a> 

Qu'est-ce que la méthode show() fait est de changer le style de l'élément à display:inline; , dans ce cas tu appelleras seulement $('.reg').show() ou $('a').show(), sans avoir à modifier la propriété display CSS en utilisant directement la méthode attr():

<script type="text/javascript" > 
    $(document).ready(function() { 
     $('a').show(); 
    }); 
</script> 
+0

'visible' est une propriété de contrôle web ASP.Net, pas une propriété HTML :) –

+0

Oui, je sais; J'ai indirectement mentionné ceci dans la toute première ligne, mais j'ai ensuite réalisé que c'est une bonne idée de mentionner son utilisation sur un contrôle ASP.NET :) J'ai changé ma réponse pour inclure ce petit indice, aussi. Merci. –

1

Réglez le style-none pour la balise d'ancrage:

<a runat="server" class="reg" style="display: none;" id="RegisterSoftwareTab" href="../RegisterSoftware.aspx">Register Software</a> 

Ensuite, pour le montrer, utilisez $('a').show();