2012-07-16 41 views
0

http://kiwilocals.com.au/dev/AJAX请求(所有版本)

你好,这里是在页面的旗帜下中间一个类别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>"; 

}

+1

嗨!我不确定我是否理解这个问题。你能解释一下这个问题吗?什么是页面图标?问题何时发生? – albin 2012-07-16 08:18:37

+0

你有没有试过注释掉这一行wait_loading('sub_lst');代码看起来是正确的ajax请求,但没有什么可以隐藏等待图像。 – 2012-07-16 08:26:47

+0

@ChrisGessler 我已更新帖子,我认为它变得更清晰 – slavame 2012-07-16 09:08:04

回答

1

问题是与你在readstatechange事件使用 '本'。

给这个镜头。

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; 
    } 
}); 
+0

非常感谢,一切都很好! – slavame 2012-07-16 09:57:04

+1

@ user1528220,当您对答案满意时,您需要通过点击答案旁边的'tic'标记将其标记为'接受答案'。你也应该投票了所有有用的答案。 – tusar 2012-07-16 10:03:03