2014-04-02 4 views
0

У меня есть несколько экземпляров кнопочного элемента:Target в настоящее время щелкнул экземпляр элемента

<div id="openambiance" class="openclose leftside"></div> 
<div id="opendesign" class="openclose rightside"></div> 
<div id="openperform" class="openclose leftside"></div> 

Они несут разные идентификаторы, как нажать на каждый из них открывает другую панель. Я бы хотел, чтобы в настоящее время открытая панель переключает фокус кнопки открытия/закрытия в соответствии с определением в .openclose-active. Реальность, однако, все они затронуты. Мой исходный код выглядел так, и я быстро понял, почему все они получать пострадали:

$(document).ready(function() { 
    $("#openambiance").click(function(e){ 
     $("#hiddenambiance").slideToggle(600,"easeInOutQuint"); 
     $(".openclose").toggleClass("openclose-active"); 
    }); 
}); 

Так что я попытался ориентированные на конкретные элементы:

$(this).find(".openclose").toggleClass("openclose-active"); 

Это не удалось, поэтому я пошел на .siblings,. следующий и .parent, но не повезло. Они все еще либо все включены, либо только предыдущие экземпляры переключаются. Я потерял :(

+1

_ «У меня несколько экземпляров элемента кнопки» _ Они не похожи на кнопки для меня. – j08691

+0

Вы не ищете нисходящий элемент вашего клика, а сам элемент. Попробуйте $ (это) без .find(), и он должен работать. – John

ответ

2

this является элемент, который вы ищете

$(document).ready(function() { 
    $("#openambiance").click(function(e){ 
     $("#hiddenambiance").slideToggle(600,"easeInOutQuint"); 
     $(this).toggleClass("openclose-active openclose"); 
    }); 
}); 

Вы нажимаете на кнопку, которая имеет класс openclose, так что вам нужно переключить класс для this элемента не для какой-либо его потомков

+1

Он может заниматься своим делом. Двигайтесь вперед. – Blazemonger

+0

Черт возьми, это должно было прийти мне в голову. Спасибо, связка, день спасен! – procopy

Смежные вопросы