0

http://kiwilocals.com.au/dev/

您好,这里是页面中间横幅下的一个类别的 ajax 请求。除了所有版本的 IE 之外,可以在任何地方工作。我检查了开发人员的工具,查询给出了正确的结构,但是加载后没有出现加载图标上的任何内容。可能是什么原因?谢谢你。

function scat(th) {
wait_loading('sub_lst');

if (request = create_request()) {

    request.open("GET", "get_subcat.php?id=" + th + "&site=1", true);
    request.onreadystatechange = function () {
        //alert(request);
        if (this.status == 200) {
            if (this.readyState == 4) {

                var doc3 = document.getElementById('sub_lst');
                //alert(doc3);
                doc3.innerHTML = this.responseText;
                if (!scroll_start) {
                    $('.sub_scroll').jScrollPane({
                        animateScroll: true
                    });
                    $('.hidden_control').show();
                    scroll_start = true;
                }
            }
        }
    }
    request.send(null);
}
}

function create_request() {
var request = false;
try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
    try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e2) {
        try {
            request = new XMLHttpRequest();
        } catch (e3) {
            request = false;
        }
    }
}
if (!request) {
    alert("Невозможно выполнить Ajax запрос.");
    return false;
} else return request;
}

function wait_loading(el_id) {
document.getElementById(el_id).innerHTML = "<center><img style=\"padding-top: 60px;\" width=\"64\" height=\"64\" src=\"images/loading.gif\"></center>";

}

4

1 回答 1

1

问题在于您在 readstatechange 事件中使用了“this”。

试一试。

if(request = create_request()) {

    request.open("GET", "get_subcat.php?id="+th+"&site=1", true);
    request.onreadystatechange = function() {

        if(request.status == 200) {
            if( request.readyState == 4 ) {
                var doc3 = document.getElementById('sub_lst');
                doc3.innerHTML=request.responseText;

                if(!scroll_start) {
                    $('.sub_scroll').jScrollPane({animateScroll: true});
                    $('.hidden_control').show();
                    scroll_start=true;
                } 
            }
        }
    }
    request.send(null);
}

但是有一个问题......您在整个代码中都使用 jQuery,除了这个。为什么不使用:

$('#sub_lst').load("get_subcat.php?id="+th+"&site=1", function(){
    if(!scroll_start) {
        $('.sub_scroll').jScrollPane({animateScroll: true});
        $('.hidden_control').show();
        scroll_start=true;
    } 
});
于 2012-07-16T09:41:52.140 回答