2015-07-28 7 views
0

Если у нас есть складная панель изначально определяется как этотMVC Bootstrap аккордеон - определить, с JavaScript, если открыт или закрыт

<div id="ContactDetails" class="panel-collapse collapse"> 

Как я могу проверить, чтобы увидеть, если он открыт или закрыт с помощью JavaScript?

Благодаря

+0

Похоже, вы должны спросить себя, что разница в CSS собственности или CSS класс, когда он разложен и скомпенсирован. Вы можете легко проверить это условие с помощью JavaScript. Осмотрите элементы в своем браузере и узнайте. – Seano666

ответ

1

Вы можете получить список классов в этом элементе (в вашем случае сОн ид = «ContactDetails»).

var classList = document.getElementById('ContactDetails').className.split(/\s+/); 
for (var i = 0; i < classList.length; i++) { 
    if (classList[i] === 'collapse') { 
    //do something 
    } 
} 

Затем вы можете просмотреть свой классList [], если один из них равен «свернуть».

Чистый путь Javascript:

var classList =$('#ContactDetails').attr('class').split(/\s+/); 
$.each(classList, function(index, item){ 
    if (item === 'collapse') { 
     //do something 
    } 
}); 
+0

По какой-то причине я не мог заставить второй скрипт работать, но первый выполнил эту работу. Спасибо за быстрый ответ :-) – gchq

1

С JQuery.hasClass:

$("#ContactDetails").hasClass("panel-collapse") 
+0

Одна из первых вещей, которые я пробовал, - это искать .className в JavaScript, и она вернулась положительно, независимо от того, был ли открыт или закрыт аккордеон – gchq

1

@Jocksan был близок, за исключением того, что панель всегда будет иметь класс "панель коллапса" (как @gchq найдено) , Когда он открывается, добавляется класс «in», и когда он закрывается, класс «in» удаляется. Так что это возвращает истину для открытых, ложь для закрытых:

$("#ContactDetails").hasClass("in") 

Здесь больше о классах и как все это работает: http://getbootstrap.com/javascript/#collapse-example-accordion

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