使用jquery在toggle上添加和删除css图像类
Add and Remove a css image class on toggle using jquery
当用户单击artcile的h3元素时,我试图切换菜单,这很像手风琴,但有点不同。
我无法实现的是,当调用元素的slideToggle函数时,图像不会显示,也不会更改。然而,幻灯片切换运行良好,这正是我需要帮助的图像。
HTML:-
<div class="pages">
<article class="collapsible expanded collapsed">
<h3><?php echo $lang->xlate('presentation-b');?></h3>
</article>
<div class="content">
<ul>
<li>
<?php echo $lang->xlate('presentation-c');?> </li>
<li>
<?php echo $lang->xlate('presentation-d');?> </li>
<li>
<?php echo $lang->xlate('presentation-e');?> </li>
</ul>
</div>
</div>
CSS
#paragraph .pages .collapsible {
padding: 2px;
cursor: pointer;
font-weight: bold;
}
#paragraph .pages .collapsible .expanded {background: url('../img/list.png') no-repeat left top;}
#paragraph .pages .collapsible .collapsed {background: url('../img/pagination.gif') no-repeat left top;}
jQuery:-
$('.collapsible').click(function(){
$coll = $(this);
$content = $coll.next();
$content.slideToggle(500, function () {
//execute this after slideToggle is done
//change text of header based on visibility of content div
if($(this).hasClass('expanded'))
{
$(this).toggleClass('collapsed expanded');
}
else
{
$(this).toggleClass('expanded collapsed');
}
});
});
添加或删除类时不需要类指示符"."
。这意味着您不会为每个状态切换背景图像。
$(this).addClass('.collapsed').removeClass('.expanded');
所以你的代码应该是
if ($(this).hasClass('.expanded')) {
$(this).addClass('collapsed').removeClass('expanded');
} else {
$(this).addClass('expanded').removeClass('collapsed');
}
在添加和删除类时,在类名之前删除.
。
$(this).addClass('expanded').removeClass('collapsed');
此外,您还可以使用toggleClass()
在类之间切换。
$(this).toggleClass('collapsed expanded');
类似:
$('.collapsible').click(function() {
$coll = $(this);
$content = $coll.next();
$content.slideToggle(500, function() {
//execute this after slideToggle is done
//change text of header based on visibility of content div
$(this).toggleClass('collapsed expanded');
});
});
相关文章:
- 如何修复:当javascript更改DOM时,iOS会删除CSS文件
- 无法删除css类并添加新类
- 在页面加载时删除CSS模式Flash
- 如何在svg元素上添加和删除css类
- 我们可以使用jquery删除css选择器吗
- 用程序从单个HTML元素中删除CSS样式规则
- 使用jquery在toggle上添加和删除css图像类
- 如何使用setTimeout添加和删除CSS类n次
- 在使用整页.js时滚动固定元素后添加或删除 css 类
- 如何使用 jQuery 删除 CSS 属性
- 根据屏幕宽度添加/删除 CSS ID
- 使用纯 JS 删除 CSS 属性失败
- 添加/删除 CSS 类属性以尊重不基于 Div id 的类
- 删除 CSS 规则在 Firefox 中不起作用
- 完全删除 CSS 属性
- 在悬停时添加和删除 CSS 类
- 使用 jQuery 在加载时删除 CSS 样式
- 删除 css 动画不起作用
- 如何即时删除 CSS 样式
- 如何构建一个jQuery驱动的切换器来添加/删除css属性