2013-03-12 4 views
4

Мне нужно с jQuery знать, если элемент на моей странице уже переключен или нет.jQuery, обнаружить, если элемент уже переключен

У меня есть меню с элементами XXX.

Когда я нажимаю на элемент, я использую: $("#elementXX").slideToggle("slow"); (XX это число)

Если я нажимаю на другой элемент, мне нужно знать, если элемент уже переключения, и мне нужно, чтобы закрыть этот элемент перед тем, как перейти к методу SlideToggle.

Как я могу это сделать? Я не могу проверить id по id, как # element1, # element2, # element3 и т. Д.

Спасибо!

+1

Вы всегда можете '.slideUp()' элемент безоговорочно, без необходимости проверять его текущее состояние. –

ответ

2

Вам не нужно тумблер, slideUp и slideDown являются гораздо лучше подходят для вашего сценария. Вы можете просто:

$("#clickedItem").click(function() { 
    var wasVisible = $("#elementXX").is(":visible"); 
    $("[id^=element]:visible").stop().slideUp("slow"); 
    if (!wasVisible) { 
     $("#elementXX").slideDown("slow"); 
    } 
}); 
+0

Возможно, вам понадобится '.stop(). SlideUp()', если элемент попал в среднюю анимацию из предыдущего события. –

+1

@ Beetroot-Beetroot Хороший крик, добавленный :) – mattytommo

+0

Да, но с этим решением я не могу закрыть свой элемент, когда я reclick –

3

Вы можете установить атрибуты данных на некоторое значение, чтобы узнать, переключено ли оно. Вы можете добавить атрибуты в html или использовать скрипт прямо для добавления.

$("#elementXX").data("toggled", "true"); 
+0

Я бы рекомендовал добавить атрибут, преобразованный в данные, в элемент для поиска. – Rodik

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