2012-11-21 3 views
0

가능한 복제를 부모의 메소드를 호출하는 방법 :
jquery reference this from parentJQuery와 아약스 성공의 내부에서

이 여기 내 첫 번째 게시물입니다. 질문 - 아약스의 성공 알림을 호출하는 방법은 무엇입니까?

var page = { 

    alerts: function (json) { 

     if (json == 'us') { alert("blablabla") } else { 
      alert(json.login); 
     } 
    }, 

    ajax: function (obj) { 

     $.ajax({ 
      type: 'post', 
      url: './scripts/serv.php', 
      dataType: 'json', 
      data: { object: $.base64.encode(JSON.stringify(obj)) }, 

      success: function (json) { 

// how to call from here alerts(json)?? this.alerts(json) - doesn't 
// work only page.alerts(json) but i think its wrong way. 

      }, 
      error: function (json) { 
       alert('ajax failed'); 
      } 
     }) 
    } 
} 

답변

4

success이 다른 범위에서 호출되었으므로 AJAX 요청 전에이 내용을 저장해야합니다.

예 :

var page = { 
    alerts: function(json){ 
     if (json=='us'){ alert("blablabla")} else{ 
     alert(json.login); } 
    }, 
    ajax: function(obj){ 
     var me = this; 

     $.ajax({ 
      type:'post', 
      url:'./scripts/serv.php', 
      dataType:'json', 
      data:{object:$.base64.encode(JSON.stringify(obj))}, 

      success: function(json){ 
       // how to call from here alerts(json)?? this.alerts(json) - doesn't work only page.alerts(json) but i think its wrong way. 
       me.alerts(json); 
      }, 
      error: function(json){ 
       alert('ajax failed'); 
      } 
     }); 
    } 
}; 
+0

감사가 –

1
var page={ 
alerts: function(json){ 

    if (json=='us'){ alert("blablabla")} else{ 
    alert(json.login); } 
}, 

ajax: function(obj){ 
    var that = this; <!-- PARENT OBJECT REFERENCE --> 
      $.ajax({ 
        type:'post', 
        url:'./scripts/serv.php', 
        dataType:'json', 
        data:{object:$.base64.encode(JSON.stringify(obj))}, 
     success: function(json){ 
      that.alerts(json) <!-- USE THAT --> 
     }, 
     error: function(json){ 
      alert('ajax failed'); 
     } 
}) 

} } 
+0

아주 많이는 workss 감사 완벽하게 작동 많은 –