【发布时间】:2016-05-15 18:52:17
【问题描述】:
我正在使用 dropdown button by Zurb Foundation 5 字体真棒,想法是在菜单可见时旋转字体,并在隐藏后将其旋转回来。
Zurb Foundation 5 不在元素上使用打开类,因此 hasClass 不起作用,而是使用 Aria,由于 hasAria 不存在,我尝试使用一些解决方案,但遗憾的是,这些解决方案无法以一种方式或更多的。我想要做的是当父.wf-burger 是aria-expanded = true 时将类fa-rotate-90 添加到字体元素<i> 并在aria-expanded = false 时将其删除。
这是我相当简单的 HTML 代码:
<h1>
<a aria-expanded="false" aria-controls="drop1" data-dropdown="drop1" href="#" class="wf-burger">
<i aria-hidden="true" class="fa fa-bars fa-rotate-90"></i>
</a>
</h1>
<ul aria-hidden="true" class="f-dropdown" id="drop1" data-dropdown-content>
<li><a title="Link 1" href="#1">Link 1</a></li>
<li><a title="Link 2" href="#2">Link 2</a></li>
<li><a title="Link 3" href="#3">Link 3</a></li>
<li><a title="Link 4" href="#4">Link 4</a></li>
<li><a title="Link 5" href="#5">Link 5</a></li>
</ul>
此代码有效,但在 aria 为 false 时不会删除该类:
(function($) {
var attr = $('.wf-burger').attr('aria-expanded');
if (typeof attr !== typeof undefined && attr !== false) {
$('.fa.fa-bars').addClass('fa-rotate-90');
}
if (typeof attr !== typeof undefined && attr !== true) {
$('.fa.fa-bars').removeClass('fa-rotate-90');
}
})(jQuery);
这段代码根本不起作用:
(function($) {
if ($('.wf-burger').attr('aria-expanded') === 'true') {
$('.fa.fa-bars').addClass('fa-rotate-90');
}
if ($('.wf-burger').attr('aria-expanded') === 'false') {
$('.fa.fa-bars').removeClass('fa-rotate-90');
}
})(jQuery);
【问题讨论】:
-
或者干脆
if(!attr)
标签: javascript jquery css zurb-foundation font-awesome