2010-05-10 9 views
0

2 partie question ici ... J'ai plusieurs DIVs qui utilisent une simple fonction .click show() pour afficher le contenu. Y a-t-il un moyen de les combiner pour réduire mon code? Je n'étais pas sûr, parce qu'ils affichent tous DIV avec ID uniques.jQuery utiliser la touche d'échappement pour fermer la bascule

$('a#hmo-blue-lnk1').click(function() { 
    $('#hmo-blue1').show(); 
    return false; 
    }); 

$('a#hmo-blue-lnk2').click(function() { 
    $('#hmo-blue2').show(); 
    return false; 
    }); 

$('a#hmo-blue-lnk3').click(function() { 
    $('#hmo-blue3').show(); 
    return false; 
    }); 

je les fermer par cet extrait:

$('a.close').click(function() { 
    $('#hmo-blue1').hide(); 
    $('#hmo-blue2').hide(); 
    $('#hmo-blue3').hide(); 

    return false; 
    }); 

2ème partie de la question ... Comment puis-je intégrer l'aspect que l'utilisateur peut simplement appuyer sur la touche d'échappement aussi hice (ou à proximité) la boîte qui est montrée?

Répondre

3

Pour la première partie:

for (i=1; i<=3; i++) 
    { 
      $('a#hmo-blue-lnk'+i).click(function() { 
       $('#hmo-blue'+i).show(); 
       return false; 
      }); 
    } 

Pour la deuxième partie.

$(document).keypress(function(e) { 
    if (e.which == 27) { 
      for (i=i; i <=3; i++) 
      { 
       $('#hmo-blue'+i).hide(); 
      } 
    } 
}); 

Vous pouvez changer votre fonction cacher une boucle trop, puis appeler au lieu de fermer trop en faisant $ (« a.close »). Cliquez sur() qui appelleriez un clic sur la place a.close .

Questions connexes