0

我有一个用 jQuery 动态替换的 div。

我做这样的事情:

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

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

最奇怪的是,使用 Chrome 时,如果我右键单击样式错误的元素并选择“检查元素”,则样式会很好地加载。

这在 IE8 上正常工作。

关于在 Chrome 上可能导致此问题的任何想法?

谢谢

4

4 回答 4

1

其实我只是找到了一个解决方案。

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

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

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

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

于 2012-04-12T17:58:51.003 回答
1

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

$(some_selector_in_the_result).css('display','block');
于 2012-04-12T17:54:35.550 回答
0

你在任何地方都使用 jQuery 函数 removeAttr('style') 吗?众所周知,它有时会导致 Chrome 或其他 webkit 浏览器出现问题。见http://bugs.jquery.com/ticket/9699

于 2012-04-12T17:52:35.210 回答
0

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

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

于 2012-04-12T17:53:00.873 回答