我想访问作为数据传递给$ .get的参数 jQuery的。代码是这样的:
$.get(requestUrl,
{lesson: eventParams.lessonId,
page: eventParams.page},
function(data) {
// here I want to access
// lesson or page
});
现在我做了这样的事情:
$.get(requestUrl,
{lesson: eventParams.lessonId,
page: eventParams.page},
(function(contextObject) {
return function(data) {
// Here I accessing
// contextObject.lesson
// and
// contextObject.page
}})({lesson: eventParams.lessonId,
page: eventParams.page});
如果可以避免使用闭包,这将有效。 我将不胜感激任何帮助。 最好的问候。
答案 0 :(得分:0)
你宣布了eventParams吗?
var eventParams = '';
您可以在全局范围内使用var(在所有函数之外)来声明全局变量:
var yourGlobalVariable;
function boo() {
// ...
}
或者,您可以在窗口上分配属性:
function foo() {
window.yourGlobalVariable = ...;
}
答案 1 :(得分:0)
您的params对象(或至少其属性)可以作为回调的this
context访问,请参阅context
option的文档:
默认情况下,上下文是一个对象,表示调用中使用的ajax设置(
$.ajaxSettings
与传递给$.ajax
的设置合并)
所以使用
$.get(requestUrl, {
lesson: eventParams.lessonId,
page: eventParams.page
}, function(data) {
console.log(this);
// use this.data.lesson or .page
});
eventParams
,那将会更容易。如果你不相信context
或想要使用闭包来清楚,那么这里是如何正确地做到这一点(假设你不能使用eventParams
因为它们是不稳定的):
(function() {
var data = {
lesson: eventParams.lessonId,
page: eventParams.page
};
return $.get(requestUrl, data, function(resultData) {
// here use data.lesson or .page
});
})()