我有一个div,我正在用jQuery动态替换。
我这样做:
$.get(url, function(result){
$("#myDiv").replaceWith($(result));
}
请求正确并且加载标记没有问题,但即使ajax调用返回的内容(“return”)与#myDiv完全相同(它包含具有相同id的元素),某些样式未正确应用。
最奇怪的是使用Chrome,如果我右键单击错误样式的元素并选择“Inspect element”,则样式加载就好了。
这在IE8上运行正常。
有关Chrome可能导致此问题的任何想法?
由于
答案 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来定位元素,即使它对该元素是唯一的。