jQuery 传递回调函数但使用 return 值
jQuery passing function for callback but make use of return value
好的,开始吧,
我在 javascript 中创建了一个 ajax 命名空间,这样可以更轻松地记住需要插入哪些值才能使其正常工作。
(function (ns) {
ns.type = "POST";
ns.url = "/";
ns.data = {};
ns.success = function() {};
ns.send = function() {
$.ajax({
type: ns.type,
url: ns.url,
data: ns.data,
success: ns.success()
});
}
}(fps.ajax));
为了使用它,我执行以下操作
var ajax = fps.ajax;
ajax.url = "/credit/getBalance";
ajax.type = "GET";
ajax.success = function (e) {
navCredits.text(navCredits.text().f(e));
};
ajax.send();
现在我遇到的问题是我的成功功能。
我向它传递了一个变量,我希望我的 ajax 函数使用它,因为它是 return 数据,但它不是以这种方式发生的。
我对此的理解是,它 (e) 未在设置成功函数的位置声明,因此我会得到一个未定义的值。
我的问题是,有没有一种方法可以传递带有 "parameter" 的函数,该函数应该使用它自己的函数值?
我觉得我解释得不是很好,但希望那里有足够的代码来帮助您理解我想要实现的目标。
亲切的问候
您正在执行您的成功函数,而不是将其指定为处理程序。删除 "success:ns.success()" 行中的 ()。
ns.send = function() {
$.ajax({
type: ns.type,
url: ns.url,
data: ns.data,
success: ns.success // you don't want to execute
});
}
当你在函数引用后面加上“()”时,它会在那个时刻执行它。在您的情况下,它正在执行一个空函数,如几行所定义的那样。带有事件参数的成功函数被声明为正常,但从未被使用过。
当您删除“()”时,它会将函数对象分配给 属性。当您添加“()”时,它会在那一刻执行函数并将 return 值分配给 属性。当 jQuery "ajax" 调用成功完成时,success 函数将在该对象上执行,因此它们会在那时处理“()”的添加。 ;)
好的,开始吧,
我在 javascript 中创建了一个 ajax 命名空间,这样可以更轻松地记住需要插入哪些值才能使其正常工作。
(function (ns) {
ns.type = "POST";
ns.url = "/";
ns.data = {};
ns.success = function() {};
ns.send = function() {
$.ajax({
type: ns.type,
url: ns.url,
data: ns.data,
success: ns.success()
});
}
}(fps.ajax));
为了使用它,我执行以下操作
var ajax = fps.ajax;
ajax.url = "/credit/getBalance";
ajax.type = "GET";
ajax.success = function (e) {
navCredits.text(navCredits.text().f(e));
};
ajax.send();
现在我遇到的问题是我的成功功能。
我向它传递了一个变量,我希望我的 ajax 函数使用它,因为它是 return 数据,但它不是以这种方式发生的。
我对此的理解是,它 (e) 未在设置成功函数的位置声明,因此我会得到一个未定义的值。
我的问题是,有没有一种方法可以传递带有 "parameter" 的函数,该函数应该使用它自己的函数值?
我觉得我解释得不是很好,但希望那里有足够的代码来帮助您理解我想要实现的目标。
亲切的问候
您正在执行您的成功函数,而不是将其指定为处理程序。删除 "success:ns.success()" 行中的 ()。
ns.send = function() {
$.ajax({
type: ns.type,
url: ns.url,
data: ns.data,
success: ns.success // you don't want to execute
});
}
当你在函数引用后面加上“()”时,它会在那个时刻执行它。在您的情况下,它正在执行一个空函数,如几行所定义的那样。带有事件参数的成功函数被声明为正常,但从未被使用过。
当您删除“()”时,它会将函数对象分配给 属性。当您添加“()”时,它会在那一刻执行函数并将 return 值分配给 属性。当 jQuery "ajax" 调用成功完成时,success 函数将在该对象上执行,因此它们会在那时处理“()”的添加。 ;)