js 关于闭包暂停执行的函数
我在保存按钮的时候触发了一个js函数,这个函数在执行过程中触发了一个ajax,我需要在ajax回调完数据之前让这个函数处于暂停状态,如何实现啊?例如:<FORMONSUB...
我在保存按钮的时候触发了一个js函数,这个函数在执行过程中触发了一个ajax,我需要在ajax回调完数据之前让这个函数处于暂停状态,如何实现啊?
例如:
<FORM ONSUBMIT="javascript:return submitVerify(this);">
..
</FORM>
var submit_flag = 0;
function submitVerify(){
....
savexsl(xx,xx,xx,xx);
sleep_time();
return submitValidStr(thisForm);
}
我savexsl里面有一个ajax请求,返回一个json要赋给俩input hidden并且更改submit_flag = 1了,我需要在sleep_time();里面检测当submit_flag !=1的时候暂停执行下面的return submitValidStr(thisForm);
请高手指点。 展开
例如:
<FORM ONSUBMIT="javascript:return submitVerify(this);">
..
</FORM>
var submit_flag = 0;
function submitVerify(){
....
savexsl(xx,xx,xx,xx);
sleep_time();
return submitValidStr(thisForm);
}
我savexsl里面有一个ajax请求,返回一个json要赋给俩input hidden并且更改submit_flag = 1了,我需要在sleep_time();里面检测当submit_flag !=1的时候暂停执行下面的return submitValidStr(thisForm);
请高手指点。 展开
2个回答
展开全部
在javascript中,函数总是在一个特殊的上下文执行(称为执行上下文),如果你将一个对象的函数赋值给另外一个变量的话,这个函数的执行上下文就变为这个变量的上下文了。
下面的一个例子能很好的说明这个问题
代码如下:
window.name = "the window object"
function scopeTest() {
return this.name;
}
// calling the function in global scope:
scopeTest()
// -> "the window object"
var foo = {
name: "the foo object!",
otherScopeTest: function() { return this.name }
};
foo.otherScopeTest();// -> "the foo object!"
var foo_otherScopeTest = foo.otherScopeTest;
foo_otherScopeTest();
// –> "the window object"
下面的一个例子能很好的说明这个问题
代码如下:
window.name = "the window object"
function scopeTest() {
return this.name;
}
// calling the function in global scope:
scopeTest()
// -> "the window object"
var foo = {
name: "the foo object!",
otherScopeTest: function() { return this.name }
};
foo.otherScopeTest();// -> "the foo object!"
var foo_otherScopeTest = foo.otherScopeTest;
foo_otherScopeTest();
// –> "the window object"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询