JQuery "ЭТО". MyFuntionName недоступен, когда в AJAX Успех? но хорошо, прежде чем - PullRequest
0 голосов
/ 03 июня 2009

может кто-нибудь помочь, у меня проблема с ключевым словом this .. до ввода ajax-вызова он доступен, но при вводе Success. мое "this" доступно, но не содержит ту же информацию, т.е. метод, который я хочу вызвать .. Этот пример показывает, что я имею в виду ..

Буду признателен за любую помощь, this.isoDateReviver доступен до выполнения ajax ... и затем, когда успех наступит .. this.isoDateReiver НЕ УКАЗАН

   var data = new Object();
data.year = this.today = new Date().getFullYear();

this.isoDateReviver("yes","yes");                //// THIS WORKS HERE

$.ajax({
    type: "POST",
    url: "MyService.aspx/GetHolidays",
    data: JSON.stringify(data),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        var holidays = JSON.parse(msg.d,
       this.isoDateReviver);             // THIS DOES NOT WORK its undefined

        Calendar.initalizeHolidays(holidays);
    },
    error: function(msg) {
        alert(error);
    }
}); 

Ответы [ 2 ]

5 голосов
/ 03 июня 2009

потому что функция успеха выполняется в другом объеме.

вам нужно сделать:

var me = this;

$.ajax({
    // etc
success: function(msg) {
    var holidays = JSON.parse(msg.d, me.isoDateReviver);
0 голосов
/ 03 июня 2009

см .: http://www.alistapart.com/articles/getoutbindingsituations

функция, вызываемая в случае успеха, не работает в том же контексте, что и предыдущий вызов this.isoDateReceiver.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...