У меня есть 2 JS литералов:Могу ли я использовать jQuery .done() несколько раз?
var obj1 = {
Add: function (id) {
$.ajax({
type: "POST",
data: JSON.stringify({
"id": id
}),
url: "Page.aspx/add",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
return jQuery.parseJSON(data.d || "null");
}
});
}
};
var obj2 = {
List: function (id) {
$.ajax({
type: "POST",
data: JSON.stringify({
"id": id
}),
url: "Page.aspx/list",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
return jQuery.parseJSON(data.d || "null");
}
});
}
};
И это мой document.ready:
$(document).ready(function() {
obj1.Add(1).done(function (data) {
alert('you added ' + data);
});
obj2.List().done(function (data) {
$.each(jQuery.parseJSON(data), function (i, item) {
// fill a combo box
});
});
});
JQuery просто выполняет первый вызов и obj2.List() не вызывается вообще. Как правильно использовать дефферируемые объекты в этом случае?
'jQuery.parseJSON' не должно быть необходимо, если у вас есть' DATATYPE: "JSon" ' – sroes
. done используется для ожидания вызова ajax. он работает, но только один раз. – Alex
И почему это сделано предпочтительнее успеха? – mplungjan