CSS样式未应用于使用jQuery替换的内容

时间:2012-04-12 17:49:23

标签: jquery ajax google-chrome replacewith

我有一个div,我正在用jQuery动态替换。

我这样做:

$.get(url, function(result){
  $("#myDiv").replaceWith($(result));
}

请求正确并且加载标记没有问题,但即使ajax调用返回的内容(“return”)与#myDiv完全相同(它包含具有相同id的元素),某些样式未正确应用。

最奇怪的是使用Chrome,如果我右键单击错误样式的元素并选择“Inspect element”,则样式加载就好了。

这在IE8上运行正常。

有关Chrome可能导致此问题的任何想法?

由于

4 个答案:

答案 0 :(得分:1)

听起来重绘不会触发。您可以尝试在替换后强制更改样式,如下所示:

$(some_selector_in_the_result).css('display','block');

答案 1 :(得分:1)

其实我刚刚找到了解决方案。

未正确设置样式的元素是具有绝对位置的div。

我只设置了底部位置而不是左侧(设置为0)。

我明确地将CSS中的左边设置为0,现在看起来很好。

显然,Chrome中的某些原因默认位置不同。

答案 2 :(得分:0)

你在任何地方使用jQuery函数removeAttr('style')吗?众所周知,Chrome或其他webkit浏览器会引发麻烦。 见http://bugs.jquery.com/ticket/9699

答案 3 :(得分:0)

Chrome的DOM选择器比IE8严格得多。

我建议按类而不是ID来定位元素,即使它对该元素是唯一的。