首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当父元素包含class="active“时,将子元素设置为aria-expanded="true”

当父元素包含class="active“时,将子元素设置为aria-expanded="true”
EN

Stack Overflow用户
提问于 2017-02-08 04:22:25
回答 2查看 1.6K关注 0票数 0

当其父元素包含类active时,我希望将子元素设置为aria-expanded="true"

代码语言:javascript
运行
复制
<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部分时,我希望下拉菜单打开。我已经尝试了几种方法,但还没有找到一个可行的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-08 05:11:57

你真正想要的是将打开的类添加到活动的下拉列表中,你想要的效果与aria-expanded=true无关:

使用以下代码:

代码语言:javascript
运行
复制
$(window).scroll(function(){
if ( $( ".dropdown" ).is( ".active" ) ) {
     $( ".dropdown.active" ).addClass("open");
}
else
{
$( ".dropdown" ).removeClass("open");
}

});
票数 0
EN

Stack Overflow用户

发布于 2017-02-08 04:55:13

如果它发生在单击事件上,则使用类似下面的内容。

代码语言:javascript
运行
复制
$('body').on('click', 'li.dropdown', function(){
  if($(this).hasClass('active')){
    $(this).children().attr('aria-expanded', true);
  }
});

代码语言:javascript
运行
复制
$('body').on('click', 'li.dropdown', function(){
  if($(this).hasClass('active')){
    $(this).find('a.dropdown-toggle').attr('aria-expanded', true);
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42099247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档