Chrome 不会在 jQuery 动画的回调中执行所有行
Chrome is not executing all lines in callback for jQuery animation
我有一些代码可以对<div>
进行动画处理。当动画完成时,需要做几件事(主要是对各种元素的CSS操作),所以我自然而然地将它们放在jQuery的.animate()提供的回调中;
它的行为与火狐浏览器的预期一样。我无法判断这是否是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上。
删除 style
属性是不可靠的。它可能不会触发页面重绘(而控制台日志或断点强制它这样做)。相反,请尝试手动调用:
$newPg.style.XYZ = "";
对于您定义的每个样式属性,如果可以列出它们。如果没有,请尝试以下操作:
for( var x in $newPg.style) $newPg.style[x] = "";
这些将触发正确的重绘,并且应该有望解决问题。
相关文章:
- 如何在`window.open`之后执行回调
- 带有Spring的$.getJSON未执行回调
- TypeError:执行回调时,回调不是函数
- Google API 的客户端库不会执行回调
- 调用消费方法后,如何在分配回调时执行回调
- 仅在堆栈中的最后一个执行回调
- 在组合框筛选后执行回调网格视图
- 在循环完成 nodejs 请求之前执行回调
- 通过AjaxForm提交图像并执行回调
- 无法在模块中执行回调,使用 Node-Cron导出对象
- 使用递归函数按顺序执行多个 ajax 请求,并在所有请求完成后执行回调函数
- 如何从对象构造函数执行回调
- 在 modernizr/yepnope 加载完所有文件后执行回调
- 在节点中执行回调
- Javascript 数组映射“出现”以对缺少的元素执行回调
- 如何在调用它的函数结束时执行回调
- 对多个元素执行回调函数
- JavaScript原生Promise对两个结果执行回调
- jquery中未执行回调函数
- 如何在循环中的所有AJAX请求完成后执行回调