单击标题时,使用slideToggle向下/向上滑动菜单(ul / li)。作为标题的背景我有一个箭头指向下方如果菜单不可见,否则(我有两个类,'箭头向上'和'向下箭头'为背景)。
以下是我尝试过的但它不起作用。什么是好的解决方案?
$j('h3.sub-menu-dropdown-btn').click(function(){
if ($j('ul').is(":visible")) {
$j(this).removeClass('arrow-up');
$j(this).addClass('arrow-down');
} else {
$j(this).removeClass('arrow-down');
$j(this).addClass('arrow-up');
}
$j('.sub-menu-dropdown').slideToggle('fast');
});
答案 0 :(得分:4)
您可以尝试一下,看看它是否符合您的需求:
$j('h3.sub-menu-dropdown-btn').click(function(){
var $self = $j(this);
$j('.sub-menu-dropdown').slideToggle('fast', function(){
$self.toggleClass('arrow-up arrow-down');
});
});
答案 1 :(得分:0)
尝试使用hasClass():https://api.jquery.com/hasClass/
$j('h3.sub-menu-dropdown-btn').click(function(){
if ($j('ul').hasClass('arrow-up')) {
$j(this).removeClass('arrow-up');
$j(this).addClass('arrow-down');
} else {
$j(this).removeClass('arrow-down');
$j(this).addClass('arrow-up');
}
$j('.sub-menu-dropdown').slideToggle('fast');
});
此外,如果没有看到html标记,我无法验证这一点,选择器$j('ul')
可能过于笼统。
答案 2 :(得分:0)
你需要像这样使用:
if($j("ul").is(":visible")==true){