0

我有一些代码可以为<div>. 当动画完成后,有几件事需要发生(主要是对各种元素的 CSS 操作),所以我很自然地将它们放在 jQuery 的 .animate() 提供的回调中;

它在 Firefox 中的行为与预期的一样。我不知道这是否是 IE 中的问题,因为仍然有一些 CSS 问题阻止它在那里正确显示 - 我不知道它是 CSS 还是我在 Chrome 中遇到的相同问题。无论如何,目前,我专注于 Chrome。

console.log需要注意的一件事是,如果我在未执行的行之前做一个正确的事情,它就不会发生。如果我插入断点然后让它继续,则相同。

        $sliders.animate($thisSlideConfig, 250, function() {

            $newPg.removeAttr('style');

            $curPg = $newPg;
            $curPgInf = plugin.getPgInf($curPg);
            plugin.setIndTxt();
            load2nav();
            plugin.adjustNavState();

            doCleanup();

        });

这条线也没有运行是$newPg.removeAttr('style');

我在块中的哪个位置放置该行或如何选择似乎并不重要$newPg

哦,是的,我使用的是 Chrome 19.0.1084.52。

4

1 回答 1

0

删除该style属性是不可靠的。它可能不会触发页面的重绘(而控制台日志或断点会强制它)。相反,请尝试手动调用:

$newPg.style.XYZ = "";

对于您定义的每个样式属性,如果您可以列出它们。如果没有,试试这个:

for( var x in $newPg.style) $newPg.style[x] = "";

这些将触发正确的重绘,并有望阻止问题。

于 2012-06-01T02:51:05.467 回答