2017-02-07 18 views
0

Я хочу установить дочерний элемент aria-expanded="true", когда его родитель содержит класс active:Установка дочернего элемента для ария вспененные = «истина», когда родитель содержит класс = «активный»

<li class="dropdown active"> 
    <a class="dropdown-toggle" data-toggle="dropdown" href="#" aria-expanded="true"> 
     Section 4 
     <span class="caret"></span> 
    </a> 
    <ul class="dropdown-menu"> 
     <li class=""><a href="#section41">Section 4-1</a></li> 
     <li class=""><a href="#section42">Section 4-2</a></li> 
    </ul> 
</li> 

Этот код поступает из пример here

Когда в этом примере я прокручиваю вниз до раздела 4-1 и 4-2, я бы хотел, чтобы раскрывающийся список открывался. Я пробовал несколько вещей, но я не нашел рабочего решения.

+0

Активно ли ли он активировать событие click? –

+0

@ K.G Ли становится активным, когда его прокручивается. – Arjo

ответ

0

То, что вы на самом деле хотите, чтобы добавить класс открытый для активного падения вниз, эффект, который вы хотите не имеет ничего общего с ария вспененные = верно:

Используйте этот код:

$(window).scroll(function(){ 
if ($(".dropdown").is(".active")) { 
    $(".dropdown.active").addClass("open"); 
} 
else 
{ 
$(".dropdown").removeClass("open"); 
} 

}); 
+0

Ваш тент близок к тому, что мне нужно, не могли бы вы настроить скрипку для этого? Кажется, что нет работы с примером кода, который я опубликовал в ссылке. – Arjo

+0

@Arjo здесь вы идете: http://www.w3schools.com/code/tryit.asp?filename=FCP76VWY640T –

+0

Большое спасибо! Мне не удалось заставить его работать, но с его фрагментом он делает! – Arjo

0

Если это событие щелчка, используйте что-то похожее на это.

$('body').on('click', 'li.dropdown', function(){ 
    if($(this).hasClass('active')){ 
    $(this).children().attr('aria-expanded', true); 
    } 
}); 

или

$('body').on('click', 'li.dropdown', function(){ 
    if($(this).hasClass('active')){ 
    $(this).find('a.dropdown-toggle').attr('aria-expanded', true); 
    } 
});