2012-07-16 40 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