首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >删除显示:无从slideToggle中的jQuery中删除

删除显示:无从slideToggle中的jQuery中删除
EN

Stack Overflow用户
提问于 2014-08-28 06:49:18
回答 3查看 5K关注 0票数 1

我使用slideToggle jQuery function.which将display: none添加到元素中。

但我需要add/remove classes(.displayNone/.displayBlock)而不是将style="display:block/display:none添加到元素中。

如何实现这一目标?

代码语言:javascript
代码运行次数:0
运行
复制
$('button').click(function(){
    $('p').slideToggle('normal');
})

jsFiddle

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-28 06:50:48

.toggleClass()

代码语言:javascript
代码运行次数:0
运行
复制
$('p').toggleClass('displayNone displayBlock');////Adds 'displayNone', removes 'displayBlock' and vice versa

您需要向p元素添加类:

代码语言:javascript
代码运行次数:0
运行
复制
<p class="displayBlock">

演示

如果您想要动画:将opicitytransition放在一起,因为display:none不与transition一起工作。

下面是演示:

过渡演示

更新

动画添加和删除类的callback函数的幻灯片:

代码语言:javascript
代码运行次数:0
运行
复制
$('button').click(function(){
    $('p').slideToggle('normal',function(){ $(this).toggleClass('displayNone displayBlock');});
})

演示

票数 2
EN

Stack Overflow用户

发布于 2014-08-28 06:50:17

您需要在元素开头添加一个类,然后使用toggleClass()

代码语言:javascript
代码运行次数:0
运行
复制
$('p').toggleClass('displayNone displayBlock');

工作演示

票数 4
EN

Stack Overflow用户

发布于 2016-07-08 05:53:06

Manwal的回答不包括删除display:none / display:block.slideToggle()补充道。虽然removeAttr('style')可以工作(如OP的更新小提琴),但它也会重置元素上的任何其他内联样式。

通过将display规则设置为'',可以在不影响任何其他内联样式的情况下重置它。

以下是一个修订版:

代码语言:javascript
代码运行次数:0
运行
复制
$('button').click(function(){
    $('p').slideToggle('normal', function() {
      $(this).css('display', '').toggleClass('displayNone displayBlock');
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25542441

复制
相关文章

相似问题

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