2009-05-16 6 views
0

quel est le moyen le plus efficace pour raccourcir cela?jquery toggle cacher afficher question

$('.img').click(function(e) { 
    if ($(this).attr('id') == 'myid') { 
     $('#a').hide(); 
     $('#b').show(); 
    } else { 
     $('#a').show(); 
     $('#b').hide(); 
    } 
}); 

et ne change quoi que ce soit à votre réponse si une autre option est ajoutée avec un else if

Répondre

0

Pourquoi vous vérifiez l'ID d'élément dans l'événement de clic? Si vous souhaitez uniquement que cet élément spécifique gère cet événement, sélectionnez-le et associez-le au gestionnaire d'événements.

Si l'on suppose que, à tout moment, il est soit #Un ou montrant #B:

$('#myid').click(function(){ 
    $('#a').toggle(); 
    $('#b').toggle(); 
}) 
4

Je vais supposer que vous essayez de faire correspondre tous les éléments avec une classe appelée « img ».

$(".img[id='myid']").click(function() { 
     $('#a,#b').toggle(); 
}); 

Pour permettre plusieurs ID

$(".img[id='myid'], .img[id='myid2']").click(function() { 
     $('#a,#b').toggle(); 
}); 

Vous pouvez également vérifier pour ne pas égaux sur l'ID

$(".img[id!='someid']").click(function() { 
     $('#a,#b').toggle(); 
}); 
6
$('#myid').click(function() { 
     $('#a,#b').toggle(); 
});