有关跳出函数的问题,请教

wscgd 2011-04-24 09:55:22
点击按钮“保存”,触发下面的函数。为什么我return了,下面的代码仍然执行?具体请看代码及注释:

text: '保存',
handler: function(){ //function start
var m = store.modified.slice(0);
var jsonArray = [];
Ext.each(m, function(item) {
jsonArray.push(item.data);
if(jsonArray.length>1) {
Ext.Msg.alert("提示", "请每次修改一行数据");
return; //为什么这里我return了,下面的代码仍然执行呢?
}
});

Ext.lib.Ajax.request(
'POST',
'http://127.0.0.1:8080/pm1/dept/dept!test.action',
{
success: function(response){
Ext.Msg.alert('信息', response.responseText, function(){
store.reload();
});
},failure: function(){
Ext.Msg.alert("错误", "与后台联系的时候出现了问题");
}},
'data=' + encodeURIComponent(Ext.encode(jsonArray))
);
} //function end

...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongmei85 2011-04-24
  • 打赏
  • 举报
回复
因你return出来的是Ext.each(m, function(item) {...

不是从handler: function(){ //function start这里退出来

wscgd 2011-04-24
  • 打赏
  • 举报
回复
可是我已经进入了这个if体内,执行了return,而这个return也是在这个函数体内的。为什么下面的ajax仍然会执行呢?谢谢~
乌镇程序员 2011-04-24
  • 打赏
  • 举报
回复
return只能终止语句所在函数的执行,改为
if(jsonArray.length>1) {
Ext.Msg.alert("提示", "请每次修改一行数据");
return; //为什么这里我return了,下面的代码仍然执行呢?
}
else {
Ext.lib.Ajax.request(
//...
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧