我有一个div,它使用jquery的切换方法'fast‘来隐藏/显示。在切换发生后,我立即记录了切换的div的css显示状态,如果它从显示变为隐藏,则状态显示为“block”……
但是根据jquery文档,它现在应该是'none':
当提供持续时间时,.toggle()成为一个动画方法。.toggle()方法同时对匹配元素的宽度、高度和不透明度进行动画处理。当这些属性在隐藏动画后达到0时,display style属性将设置为none,以确保元素不再影响页面布局。
$(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消息或类似的消息?
发布于 2012-08-07 22:28:50
"Right after“调用toggle时,该方法是异步动画。因为它要调整宽度和高度来制作动画,所以它必须将CSS声明为display:block。动画完成后,CSS应该会像您预期的那样显示:none。
您可以在动画完成后调用一段代码,方法是将一个回调参数提供给toggle()函数。例如:
$(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
https://stackoverflow.com/questions/11848099
复制相似问题