2008-10-27 15 views
0

我已經把下面的mootools腳本Ajax和圖像

window.addEvent('domready', function() { 
    var shouts = "timed.php"; 
    var log = $('log_res'); 
    function updateData (url,target) 
    { 
     new Ajax(url,{ 
     method: 'get', 
     update: $(target), 
     onComplete: function() { 
     log.removeClass('ajax-loading');} }).request(); 
     log.empty().addClass('ajax-loading'); 
    } 

    var update = function(){ updateData (shouts, 'log_res'); }; 
    update();   // call it immediately 
    update.periodical(10000); // and then periodically 

}); 

繼承人的HTML

<div id="AJAX"> 
    <h3>Ajax Response</h3> 
    <div id="log_res">exercise</div> 
</div> 

其使用哞1.1替換文本。

上述工作正常,頁面加載然後ajax請求踢在div id log_res有一個ajax加載類,而它的更新,當它完成文本行使在div被替換爲任何ajax已返回(YIPPEE)。但我想把一些自定義的HTML放到頁面加載的WHILST中,因爲ajax-loading類不足以包含這些信息,我還想將一個旋轉閃爍器放到div中,同時ajax請求正在檢索信息。 希望有道理!

回答

3

通過MooTools 1.2,這個工作的要求:

function updateData (url, target) 
{ 
    var target = $(target); 
    target.empty().addClass('ajax-loading'); 
    target.innerHTML = "Loading..."; 
    new Request({ 
    url: url, 
    method: 'get', 
    onComplete: function(responseText) { 
     target.removeClass('ajax-loading'); 
     target.innerHTML = responseText; 
    } 
    }).send(); 
} 

既然你沒樂趣,使用MooTools的1.1,我必須深入一點......其實,我工作用幾乎設置爲相同的它得到了你(注意我用target代替log,這是該函數的範圍之外定義):

function updateData (url, target) 
{ 
    var target = $(target); 
    target.empty().addClass('ajax-loading'); 
    target.innerHTML = "Loading..."; 
    new Ajax(url, { 
    method: 'get', 
    update: target, 
    onComplete: function() { 
     target.removeClass('ajax-loading'); 
    } 
    }).request(); 
} 
+0

感謝Tomalak,我想我還不夠清楚。我的原始代碼和你的新代碼都工作得很好:)當使用div時,類變成了ajax加載,但我也想添加加載字,直到它已經加載。那是我遇到問題的地方。我會更新我原來的帖子 – 2008-10-27 19:37:39

1

你能不能做這樣的事情:

function updateData (url, target) 
{ 
    var target = $(target); 
    target.innerHTML = 'Please wait...'; 

    //and the rest of the function 
}