2

在我的“index.php”页面中,我从用户那里获取某物并使用“ajax.php”在 div 中给出响应。ajax 页面返回一个有序列表,分为称为页面的 div。加载 ajax 后,我需要执行一个函数来设置页面的一些 css 属性。当我将它附加到按钮的 onClick 事件时,该功能已准备就绪并且可以正常工作。但我想在加载 ajax 页面后自动执行它。我试过:

  1. onload 事件也在页面顶部和页面底部的 index.php 和 ajax.php 中--> 它不起作用
  2. function in function showAjax(){...setCSS();}--> 加载整个 ajax 页面后我无法运行它
  3. 回调函数-->它不能正常工作
  4. onClick 事件 onClick="showAjax(); setCSS();"--> 它不起作用

我不使用 jQuery。我检查了类似的问题解决方法,但它们不起作用。我很感激有人能把我从这个麻烦中解救出来。谢谢

添加的代码:

var xmlHttp;

function loadXMLDoc(url,cfunc) {
    if (window.XMLHttpRequest) {
        xmlHttp=new XMLHttpRequest();
    } 
    else {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    xmlHttp.onreadystatechange=cfunc; 
    xmlHttp.open("GET",url,true); 
    xmlHttp.send();
}

function showAjax(x) { 
    loadXMLDoc("ajax.php?obj="+x,function() {
       if (xmlHttp.readyState==4 && xmlHttp.status==200) {
          document.getElementById("sonuclar").innerHTML=xmlHttp.responseText;
       }
    });
}
4

2 回答 2

0

我解决了这个问题。“if (xmlHttp.readyState==4 && xmlHttp.status==200)”这个语句已经在控制 ajax 是否完全加载。所以我将我的 setCSS 函数作为回调添加到 showAjax 函数中

`function showAjax(x, func) {

loadXMLDoc("ajax.php?obj="+x,function() {

   if (xmlHttp.readyState==4 && xmlHttp.status==200) {

      document.getElementById("sonuclar").innerHTML=xmlHttp.responseText;

      func();

   }

});

}

onclick=showAjax(this.value, setCSS);'

于 2012-10-23T12:42:49.313 回答
-1

好吧,如果您使用自己的 ajax 风格,那么请查看我创建的这个站点: CV Online,并检查我的 httpreq.js,函数 OnStateChange。这在 ajax 请求完成时调用,无论成功与否。让我知道这个脚本是否有帮助。

于 2012-10-21T17:55:16.210 回答