我有一个我无法弄清楚的范围问题。
请参阅此代码:
setTimeout(function () {
var jq = $.ajax({
});
jq.done(function(data){
})
},1000);
// How to access jq object here?
如何访问setTimeout外的jq?这是一个实时样本http://jsfiddle.net/g54Cx/
答案 0 :(得分:0)
将var jq;
移出Timeout定义,如下所示:
var jq;
setTimeout(function () {
jq = $.ajax({
});
jq.done(function(data){
})
}, 1000);
console.log(jq);
答案 1 :(得分:0)
除了其他建议......
您可以将其传递给其他功能: http://jsfiddle.net/7aZdm/
myFunction(jq) {
//access in here
}
setTimeout(function () {
var jq = $.ajax({
url: "/echo/json/",
type: "POST",
data: {json: '{"message": "Hello"}'},
dataType: "json"
});
myFunction(jq);
jq.done(function(data){
$("#msg").text("Response is = " + data.message);
})
},1000);
或者只是将它分配给窗口对象,但这通常是不好的做法
window.jq = jq