2013-07-22 4 views
0

J'ai un code javascript qui quand un lien est cliqué, il peut montrer et cacher des divisions de la page.jquery afficher et masquer

function shoh(id) { 

    if (document.getElementById) { // DOM3 = IE5, NS6 
     if (document.getElementById(id).style.display == "none"){ 
      $(id).fadeIn();  
     } else { 
      $(id).hide(); 
     } 
    } else { 
     if (document.layers) { 
      if (document.id.display == "none"){ 
       document.id.display = 'block'; 
      } else { 
       document.id.display = 'none'; 
      } 
     } else { 
      if (document.all.id.style.visibility == "none"){ 
       document.all.id.style.display = 'block'; 
      } else { 
       document.all.id.style.display = 'none'; 
      } 
     } 
    } 
} 

mais il ne fonctionne pas maintenant quand j'ajouté le jquery fadeIn et cacher au lieu d'utiliser la méthode document.getElementById. Pourquoi?

+0

Avez-vous ajouté la bibliothèque jQuery pour charger avec la page? – Dom

+1

Pourquoi utilisez-vous ce code de compatibilité horrible de 2000 en 2013? Vous n'auriez même pas besoin de jQuery ici, * tous les navigateurs supportent 'getElementById' aujourd'hui. – Jon

Répondre

5

Afin de sélectionner un élément par id avec jQuery, vous devez utiliser le selector syntax, ce qui signifie l'ajout d'un # à l'ID. Donc, changer

$(id).fadeIn(); 

à

$("#" + id).fadeIn(); 
+0

votre légende! merci beaucoup – user2166538

+0

ne peux pas accepter pendant 8 minutes apparemment – user2166538

+0

@ user2166538, merci pour considération – Satpal

0

Essayez ceci:

function shoh(id) { 
    var el = $('#' + id); 
    if (el.is(':visible')) { 
     el.hide(); 
    } else { 
     el.fadeIn(); 
    } 
} 
0

En raison jquery fonctionne pour vous, vous ne serez pas écrire du code crossbrowser.

donc simplement

var $el = $('#'+id); // <-- this is the main key :-) 

if ($el.css('display') == "none"){ 
     $el.fadeIn();  
} else { 
     $el.hide(); 
} 
0

Vous pouvez simplement déclarer comme une variable puis l'envelopper dans un sélecteur jQuery:

var $el = $(document.getElementById(id)); 
// if 
$el.fadein(); 
//else 
$el.hide(); 

jsFiddle

+0

$ ($ el) est inutile dû $ el est déjà un objet jquery. :-) –