2010-09-11 5 views
0

J'ai beaucoup d'hrefs (avec des Ids dynamiques) dans mon application asp.net qui ont la même CssClass = MyClass.Appliquer Css pour les éléments même après le postback-jquery

Je veux que ces boutons soient cachés avec une condition.

J'ai utilisé le .ready

$(document).ready(function() { 
    if(condition) 
    $('.MyClass').css("display","none"); 
}); 

le problème est docuement.ready n'EXECUT pas quand il y a un poctback. Postback ==> Bouton visible.normal comme je l'ai mis le code en .premier.

Est-il possible de persister le code: $('.MyClass').css("display","none");

J'ai essayé d'appliquer .live() la charge du bouton, mais il ne fonctionne pas.

Des idées?

Merci d'avance.

Répondre

0

Utilisez le plugin jQuery livequery: http://brandonaaron.net/code/livequery/docs

live() lie uniquement les événements. Lorsque vous avez installé le plug-in, utilisez:

$('.MyClass') 
.livequery(function() { 
    $(this).css("display","none"); 
}); 

Cela permet de masquer les éléments de la classe MyClass chaque fois qu'ils se trouvent, même si elles sont créées à partir d'une réponse Ajax. Vous pouvez même utiliser ce code à la place de la fonction ready que vous utilisez actuellement.

Dans ce cas, la solution de Nick Craver est meilleure, mais seulement si vous devez évaluer condition juste au chargement de la page.

+0

Si vous utilisez '.livequery()', vous devriez utiliser 'this' à l'intérieur, au lieu du même sélecteur ... mais c'est trop pour la situation :) –

+0

Ah, merci; Je viens de coller cette ligne et j'aurais dû l'inspecter plus attentivement. –

+0

SOrry gars, mais cela ne fonctionne pas. – amourgh

2

Vous pouvez adopter une approche différente, définir le style en CSS, comme ceci:

body.conditionClass .MyClass { display: none; } 

Appliquer ensuite que classe à <body> sur document.ready, comme ceci:

$(function() { 
    if(condition) 
    $('body').addClass('conditionClass'); 
}); 

maintenant nouveau éléments avec .MyClass, n'importe où dans le <body> obtiendra le style display: none.

+0

Nick, ça ne marche pas. Tu as testé un exemple. – amourgh

+0

@amourgh - Yup, voici une démo: http://jsfiddle.net/nick_craver/ZZmBg/ change la condition en 'false' et tape run pour voir le contraire. –

+0

ya, votre exemple fonctionne. Je suis confondu avec cette ligne: body.conditionClass .MyClass {display: none; } Où est la définition de MyClass. – amourgh

Questions connexes