首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery:切换和css显示状态

问jquery:切换和css显示状态
EN

Stack Overflow用户
提问于 2012-08-07 22:24:06
回答 1查看 782关注 0票数 1

我有一个div,它使用jquery的切换方法'fast‘来隐藏/显示。在切换发生后,我立即记录了切换的div的css显示状态,如果它从显示变为隐藏,则状态显示为“block”……

但是根据jquery文档,它现在应该是'none':

当提供持续时间时,.toggle()成为一个动画方法。.toggle()方法同时对匹配元素的宽度、高度和不透明度进行动画处理。当这些属性在隐藏动画后达到0时,display style属性将设置为none,以确保元素不再影响页面布局。

代码语言:javascript
复制
$(this).parents('#accordionContainer').find('div.accordionContent').toggle('fast');
    console.log($(this).parents('#accordionContainer').find('div.accordionContent').css('display'));

我的控制台日志输出:

区块

jquery....min.js (第162行)

编辑:只是在这里大声思考,但是想知道我是否需要在切换和显示检查之间做一次setTimeout,也许是1秒左右?更好的是,切换是否返回一条isFinished消息或类似的消息?

EN

回答 1

Stack Overflow用户

发布于 2012-08-07 22:28:50

"Right after“调用toggle时,该方法是异步动画。因为它要调整宽度和高度来制作动画,所以它必须将CSS声明为display:block。动画完成后,CSS应该会像您预期的那样显示:none。

您可以在动画完成后调用一段代码,方法是将一个回调参数提供给toggle()函数。例如:

代码语言:javascript
复制
$(this).parents('#accordionContainer').find('div.accordionContent').toggle('fast', 
    function() {
        // This is called when the toggle animation is complete
        console.log( $(this).parents('#accordionContainer').find('div.accordionContent').css('display'));
    }
);

在JSFiddle中:http://jsfiddle.net/Ggfe4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11848099

复制
相关文章

相似问题

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