2009-05-16 3 views
0

Какой самый эффективный способ сократить это?jquery toggle hide показать вопрос

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

и делает изменения ничего на ваш ответ, если другой вариант добавляется с else if

ответ

0

Почему вы проверка для элемента идентификатора внутри события щелчка? Если вы хотите, чтобы этот конкретный элемент обрабатывал это событие, выберите его и привяжите к нему обработчик событий.

Предполагая, что в любое время либо #a или #b показ:

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

Я собираюсь предположить, что вы пытаетесь соответствовать все элементы с классом под названием «IMG».

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

Для обеспечения нескольких идентификаторов

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

Вы также можете проверить, не равна по идентификатору

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