【发布时间】:2012-05-09 01:32:58
【问题描述】:
我有这个功能:
var decreaseBar = function (barElement) {
insertCSSTransitions(barElement);
$(barElement).find('.bar').width(0);
}
insertCSSTransitions(barElement) 函数,这样做:
var insertCSSTransitions = function (barElement) {
var timeBar = settings.timeBar;
$(barElement).find('.bar').attr('style', 'transition:width ' + timeBar + 's; -moz-transition:width ' + timeBar + 's; -webkit-transition:width ' + timeBar + 's; -o-transition:width ' + timeBar + 's');
}
发生的情况是:$(barElement).find('.bar').width(0); 行将 width 设置为 0,然后 cssTransitions 的样式起作用。
因为,如果我将 decreaseBar 函数修改为此,它可以工作:
var decreaseBar = function (barElement) {
insertCSSTransitions(barElement);
// set a delay of 1 second before set to 0
setTimeout(function() {
$(barElement).find('.bar').width(0);
}, 1000)
}
用jQuery操作DOM时代码不同步?
【问题讨论】:
-
不,不是。浏览器环境是异步的。
标签: javascript jquery dom css-transitions