jquery
  • html
  • master-pages
  • 2009-08-21 5 views 0 likes 
    0

    Je souhaite ajouter l'effet fadeTo à une balise <tr> à l'aide de jQuery. Cela devrait être possible, n'est-ce pas? Voici mon code:Effet jQuery fadeTo appliqué à <tr>

    if ($) { 
        $(document).ready(function() { 
         $("tr[id$='_trPendingRequest_Manager']").fadeTo("slow", 0.33); 
        }); 
    } 
    

    Pour une raison quelconque, l'effet ne se produit pas.

    J'ai décidé de faire un peu plus de tests et j'ai ajouté une balise de paragraphe directement au-dessus de la table contenant cette <tr>, et j'ai réussi à appliquer l'effet fadeTo à l'étiquette de paragraphe. Donc, cela me conduit à penser que l'on ne peut pas appliquer l'effet fadeTo aux tags <tr>. N'importe qui a une pépite de sagesse qui ne me dérangerait pas de partager avec moi pourquoi je n'arrive pas à faire fonctionner ça?

    EDIT: est ici le code html du <table> avec le <tr> que je suis en train d'appliquer l'effet.

    <table> 
        <tr id="trPendingRequest_Manager" runat="server" style="display: none;" valign="middle"> 
        <td valign="middle"> 
         <asp:Image id="imgExc" runat="server" ImageUrl="~/Images/Mail_24x24.png" /> 
        </td> 
        <td>&nbsp;</td> 
        <td valign="middle"> 
         <asp:HyperLink ID="hypPendingRequest" runat="server" NavigateUrl="~/MyManagedRequests.aspx" Font-Bold="true" Font-Size="Medium" Font-Underline="false" ForeColor="Black">You have <asp:Label ID="lblRequestsNum" runat="server"></asp:Label>request(s) pending your action 
         </asp:HyperLink> 
        </td> 
        </tr> 
        <tr>... Removing the rest for brevity ... </tr> 
    </table> 
    
    +0

    Peut-être que vous pourriez intégrer certaines de vos html? Copier coller votre exemple de code ci-dessus et mettre en place une table simple a produit l'effet désiré, alors peut-être qu'il y a quelque chose d'autre à tout cela. – theIV

    +0

    Il semble qu'il puisse y avoir un conflit avec quelque chose d'autre, puisque d'autres sont capables de le faire fonctionner. Je le fais en fait dans une masterpage (ASP.NET), et la question tr est initialement invisible. En fait, je mets l'attribut d'affichage de la tr à "inline" pendant l'événement Page_Load de la page de masquage et seulement si certaines conditions sont remplies. Je vais ajouter le code HTML pour cela aussi. – Jagd

    +0

    vous devez "montrer" tr avant de l'évanouir. Voir ma réponse ci-dessous. – TheVillageIdiot

    Répondre

    0

    Cela fonctionne parfaitement bien. Si cela est ID unique alors vous ne même pas besoin de spécifier sélecteur tr ou correspondant, simplement ceci fera le travail:

    $(document).ready(){function(){ 
        $("#_trPendingRequestManager").fadeTo('slow','0.33'); 
    }); 
    

    EDIT: -

    Comme je soupçonnais l'id vient de runat = élément "serveur". Vous pouvez l'utiliser pour accélérer les choses.

    $(document).ready(function(){ 
        $("#<%=trPendingRequestManager.ClientID %>").fadeTo('slow','0.33'); 
    }); 
    

    Je pense que le démarrage de _ le rendait drôle. Pour en savoir plus sur l'accélération de l'utilisation de la propriété ClientID, lisez this par Dave.

    Enlever également "affichage: aucun" c'est le coupable !!!

    chaîne juste pour mettre l'opacité à 0 si vous ne souhaitez pas supprimer display: none

    $("#<%=trPendingRequestManager.ClientID %>") 
    .css('opacity','0').show() //make transparent and show 
    .fadeTo('slow','0.33') 
    

    J'ai trouvé ce here

    +0

    Merci d'avoir essayé! – Jagd

    +0

    @TheVillageIdiot - J'essaie de ne pas intégrer mes scripts dans mon balisage. J'aime le garder dans le fichier .js (c.-à-d. - JavaScript non envahissant), c'est pourquoi je ne sélectionne pas sur le ClientID de l'étiquette. Bien que je pense que vous avez raison sur l'affichage: aucun attribut - c'est probablement le problème. Je vais faire d'autres tests ici bientôt pour voir si je ne peux pas le clouer. – Jagd

    0

    En général, j'ai constaté que les éléments TR ne peuvent pas être manipulés normalement. Par exemple, vous pouvez ajouter une couleur d'arrière-plan aux éléments tr (pour zébrer, disons) mais si vous voulez une ligne entre chaque tr "ligne", vous devez ajouter la bordure css aux éléments td en dessous ou elle ne sera pas semblent avoir un effet. Je pense que c'est quelque chose de similaire. Vous devrez peut-être essayer d'exécuter fadeTo sur chaque élément enfant td de l'élément tr en question ... non, j'avoue que je n'ai rien testé.

    +0

    Ouais, j'avais pensé à essayer de l'appliquer sur les tags td. Je suppose que je vais essayer. – Jagd

    +0

    Je l'ai essayé et cela fonctionne tr avec aucun problème! – TheVillageIdiot

    +0

    L'intrigue s'épaissit! –

    Questions connexes