0

我有一个 div 使用display:none它隐藏元素而不破坏任何页面格式/布局。但是,如果我使用 ajax 获取另一个 html 页面并在 document.ready() 事件期间使用 jQuery 设置该 div 的 innerhtml,那么格式会中断。

请注意,如果您注释掉 ** ** 中的代码,格式不会中断。

Firebug 不显示任何 JS 错误。

这是ajax和设置内容代码:

        var htmlStuff;
        $.ajax({
          url: "temp.html",
          cache: false,
          success: function(html){
               htmlStuff= html;
               **$('#myDiv').html(htmlStuff);**
          }
        });

这是div:

<div id = "myDiv" style="display:none"></div>
4

2 回答 2

0

如果您要设置一个 div display:none;,然后将其更改为一个块值,这将破坏您的布局,因为display:none;它不会占用 html 布局中的空间。

于 2013-08-12T09:02:54.360 回答
0

看起来您正在获取“temp.html”文件的全部内容并将其放入您的 div 中。

如果“temp.html”包含完整的 HTML 文档(包括html,headbody元素),这将使当前页面上的 HTML 无效,并可能导致您看到的问题。

在您的 javascript 中,您可能需要搜索“temp.html”的正文,并且只插入正文的内容,确保您排除<body></body>标记。

于 2013-08-13T01:41:36.223 回答