javascript - Ajax 加载 div,部分 CSS 不工作

标签 javascript css ajax

我正在使用 ajax 加载 div 内容,但 div 内容没有使用页面的 CSS。

例子:- 此链接将加载到

<a href="#" onclick="javascript:loadAjax('test.html')">Test</a> 

<div id="result">
<table class="tablesorter">
<thead>
    <tr>
        <th>Header 1</th><th>Header 2</th>
    </tr>
</thead>
<tbody>

    <tr><td>Record 1</td><td>Desc 1</td></tr>
</tbody>    
</table>
</div>

在我的 CSS 中:

table.tablesorter thead tr th, table.tablesorter tfoot tr th {
    background-color: #e6EEEE;
    border: 1px solid #FFF;
    font-size: 8pt;
    padding: 4px;
}

table.tablesorter thead tr .header {
    background-image: url(bg.gif);
    background-repeat: no-repeat;
    background-position: center right;
    cursor: pointer;
}

在我的 test.html 中,它是具有不同记录的同一张表:

<table class="tablesorter">
    <thead>
        <tr>
            <th>Header 1</th><th>Header 2</th>
        </tr>
    </thead>
    <tbody>

        <tr><td>Record 2</td><td>Desc 2</td></tr>
    </tbody>    
    </table>

我面临的问题是,在加载“test.html”之前,CSS 没问题。但是在单击假设加载 test.html 的链接后,CSS 背景仍然显示,但“cursor:pointer”和“background-image”不再有效。

我应该怎么做才能让它发挥作用? 提前致谢!

在 loadAjax 代码中添加:

   var http_request = false;
   function loadAjax(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
     // alert(http_request.status);
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('result').innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
      }
   }

最佳答案

尝试将相同的 css 添加到 test.html 文件。如果您实际上正在使用 iframe 或将一个页面嵌入到另一个页面中,则 CSS 将不会级联到嵌入的页面中。它呈现为自己的文档。

更新:看起来您可能需要向行中的第一个单元格添加一个类以使其具有样式。 test.html 中没有任何由 CSS 第二部分设置样式的元素,因为它不匹配任何元素。

<table class="tablesorter">
    <thead>
        <tr>
            <th>Header 1</th><th>Header 2</th>
        </tr>
    </thead>
    <tbody>

        <tr><td class="header">Record 2</td><td>Desc 2</td></tr>
    </tbody>    
    </table>

关于javascript - Ajax 加载 div,部分 CSS 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2854169/

相关文章:

PHP MySQL 查询不返回所有结果

javascript - 如何使用 setInterval 为输入赋值

javascript - Javascript 获取 JSON 属性在 laravel 5.+ 中不起作用?

javascript - 使用 javascript 检测按下的 Enter 键

css - Rails 应用程序 - 在样式表中引用图像

html - 如何允许鼠标单击靠近元素?

javascript - 如何使用动态数据创建动态按钮并获取按钮单击 Angular 动态值

javascript - 加载音频缓冲区并使用音频标签播放它

javascript - 当我尝试在 html 文档中添加文本效果 'accordion' 时,某些东西阻止了 JavaScript 的运行

javascript - 无法解析 PhoneGap 应用程序的 JSON