2011-03-11 5 views
0

안녕하세요, 다시 말해서 함수가 호출되지 않는 이유를 알아 내기 위해 솔루션을 검색했습니다.

jQuery Ajax를 사용하여 제출하는 양식이 있습니다. 오류가 발생하면 모든 로컬 데이터를 가져 와서 정렬하고 정렬하여 사용자에게 보여줍니다.

$.ajax({ 
      type: "POST", 
      url: "http://xxx/register.php", 
      data: form, 
      success: function(msg){ 
       //console.log("Data Saved: " + msg); 
       $.iGrowl(2,stringdata[4]); 

       var data = parseJSON(msg); 

       if(data.msg.score != undefined){ 
        var cpt = 0; 
        $.each(data.msg.score, function(index,el){ 
         if(cpt<8){ 
          if(el.selected) 
           $('tbody').append('<tr class="win"><td>' + el.name + '</td><td>' + el.score + '</td></tr>'); 
          else 
           $('tbody').append('<tr><td>' + el.name + '</td><td>' + el.score + '</td></tr>'); 
         } 
        }); 
       } 
       else{ 
          $.iGrowl(3,"Erreur inconnue..."); 
       } 
       $("#scorediv").css("visibility","visible"); 

       $("#formule").css('opacity',0); 

     $("#scorediv").css('opacity',1); 

      }, 
      error: function(data) {    
       cpt = 0; 
       var i = 0; 
       score.each(function(r){ 
        arrayScore[i] = r; 
        i++; 
       }); 

       arrayScore.sort(function(a, b){ 
        console.log("sorting..."); 
        if(a[3]) 
        { 
         if(b[3]) 
         {   
          return (b[3].value - a[3].value); //causes an array to be sorted numerically and descending 
         } 
        } 
       }); 
       $.each(arrayScore, function(index,el){ 
       //arrayScore.forEach(function(el) { 
       //score.each(function(el){ 
        if(cpt<8) 
        { 
         if(el[2].value == form[2].value) 
          $('tbody').append('<tr class="win"><td>' + el[1].value + '</td><td>' + el[3].value + '</td></tr>'); 
         else 
          $('tbody').append('<tr><td>' + el[1].value + '</td><td>' + el[3].value + '</td></tr>'); 
         cpt++; 
        } 
        else 
         return false; 
       }); 


       var user = form; 
       store.save(user, function(r) { 
       }); 

       $.iGrowl(3,stringdata[5]); 

       $("#scorediv").css("visibility","visible"); 
       $("#formule").css('opacity',0); 
       $("#scorediv").css('opacity',1); 
      } 
     }); 

이 내 배열이 정렬되지 않습니다 : 여기에

는 샘플 코드입니다. 이에 의해

var i = 0; 
score.each(function(r){ 
    arrayScore[i] = r; 
    i++; 
}); 

:

score.each(function(r){ 
    arrayScore.push(r); 
}); 

arrayScore가 작성되지 않습니다 나는이 부분을 변경하는 경우.

단계별로 콘솔의 각 줄을 실행하려고하면 작동합니다 ... 나는 점점 더 미쳐 가고 있습니다. 그리고 실제로 어떤 일이 일어날 지 모릅니다.

도움이되면 감사하겠습니다.

추신 : 저는 jQuery1.5 + Lawnchair 및 CSS3 애니메이션을 사용하고 있습니다. 코드가 사파리와 크롬에서 테스트되었습니다.

감사합니다.

답변

0

자바 스크립트 배열 객체는 each이라는 메서드를 지원하지 않습니다. 시도해보십시오

$.each(score, function(index, value){...}); 
+0

점수는 Lawnchair 개체입니다. :) 그리고 .each() 기능을 지원합니다. 만약 내가 두 번 연속으로 각 함수를 호출 할 수있는 timeinterval을 설정하면, 0_ °로 작동합니까? – gabrielstuff

관련 문제