2012-03-05 11 views
0

ajaxが新しい入力を取得したときに、jQueryのアニメーションを作成するにはどうすればいいですか?(更新を更新せずにをタイムアウトする) getAVG.phpは、データベースフィールドのavarageを返します。 Example pageanimate jQuery ajaxの結果

コード:

(function(){ 
    var avg; 
    $.ajax({ 
     type: "POST", 
     url: "getAVG.php", 
     error: function(data){ 
      avg = data; 
      $('#kriips').animate({ 
       'left': avg*50 
      }); 
      console.log("error: "+avg); 
     }, 
     success: function(data){ 
      //alert(data); 
      avg = data; 
      $('#kriips').animate({ 
       'left': avg*50 
      }); 
      console.log("suc: "+avg); 
      //css('left',avg*50).animate(); 
     }, 
     timeout: 1000 
    }); 
})(); 
+0

avg = parseInt(data、10);を試してください。成功コールバックの内部 –

+0

それはちょうどそれを切り上げる!リフレッシュせずに更新する必要があります。 – Algeron

+0

アニメがどんな問題でも明確ではない...アニメーションがうまくいくようだ – charlietfl

答えて

2

私はあなたの質問は、ページ全体を更新せずにAJAX呼び出しを毎秒を繰り返す方法であると思います。その場合は、関数に名前を付けて、setTimeoutを使用して成功またはエラーを呼び出すだけです。

function myfunction(){ 
    var avg; 
    $.ajax({ 
    type: "POST", 
    url: "getAVG.php", 
    error: function(XMLHttpRequest, textStatus, errorThrown){ 
     //your ajax request will not return the data on an error... 
     console.log("error: "+errorThrown); 
     setTimeout(function(){myfunction(); },1000); 
    }, 
    success: function(data){ 
     //alert(data); 
     avg = data; 
     $('#kriips').animate({ 
      'left': avg*50 
     }); 
     console.log("suc: "+avg); 
     //css('left',avg*50).animate(); 
     setTimeout(function(){myfunction(); },1000); 
    }, 
    timeout: 1000 
    }); 
}