2015-10-29 3 views
1

Первая функция времени возврата Неопределенное, каждый другой раз он работает и вернуть объект ....Функция в первый раз возвращается Неопределенная, каждый раз, когда она работает? Использование Jquery, Javascript, Ajax

В принципе, первый раз, когда переменная _d хранится, это неопределенное значение.

первый раз, когда он хранит свое значение, клик «undefined», и каждый раз он сохраняет соответствующее значение.

// jscript.js 
 

 
function getDataById(This,table,Url) 
 
{ 
 
    var Id = table.row(This.parent().parent()).data().id; 
 
    $.ajax({ 
 
     url: Url + "/" + Id, 
 
     type: "GET", 
 
     dataType: 'json', 
 
     success: function (Data) { 
 
      var _d = Data; 
 
      return _d; 
 
     }, 
 
     error: function() { 
 
      sweetAlert("Oops...", "Something went wrong!", "error"); 
 
     } 
 
    }); 
 
    
 
} 
 

 
/***********************/ 
 

 
$(document).ready(function() { 
 

 
    $("#test tbody").on('click', '#aff', function() { 
 
     console.log( getDataById($(this),table,"test/email")); 
 
    }); 
 

 
)}; 
 

 
/*****************/ 
 

 
// undefined

+0

Это прямое копирование/вставка вашего кода? Потому что на конечных скобках '$ (document) .ready' вы переключили 2 фигурные скобки. – Loyalar

ответ

0

$.ajax() является асинхронным и success просто обратного вызова. Функция getDataById должна иметь функцию обратного вызова, которая будет вызвана после запроса Ajax

// jscript.js 

function getDataById(This, table, Url, callback) { 
    var Id = table.row(This.parent().parent()).data().id; 
    $.ajax({ 
    url: Url + "/" + Id, 
    type: "GET", 
    dataType: 'json', 
    success: function (Data) { 
     callback(Data); 
    }, 
    error: function() { 
     sweetAlert("Oops...", "Something went wrong!", "error"); 
    } 
    }); 
} 

/***********************/ 

$(document).ready(function() { 
    $("#test tbody").on('click', '#aff', function() { 
     getDataById($(this), table, "test/email", function (data) { 
     console.log(data); 
     }); 
    }); 
) 
}; 
/*****************/ 
+0

Спасибо, сэр :) –

Смежные вопросы