Ext.onReady(function(){} )函数的作用域分析(1)
Ext.onReady(function(){
var genResultDelete = function(){
alert('delete') ;
}
var renderResult = function(value,cellmeta,record,rowIndex,columnIndex,store){
var s = "<a href='#' onclick='genResultUpdate(\""+ rowIndex +"\")'>修改</a>" ;
s+= " <a href='javascript:genResultDelete(\""+record.data['id'] +"\")' onclick=''>删除</a>" ;
return s;
};
var adviserCm = new Ext.grid.ColumnModel([ //new Ext.grid.RowNumberer(),
{header:'班主任编号',dataIndex:'id',sortable:false},
{header:'姓名',dataIndex:'name',sortable:false},
{header:'登录帐号',dataIndex:'account',sortable:false},
{header:'密码',dataIndex:'password' },
{header:'手机号',dataIndex:'mobile',sortable:false},
{header:'email',dataIndex:'email',sortable:false},
{header:'所属学科',dataIndex:'discipline.name',sortable:false},
{header:'状态',dataIndex:'status',renderer:renderStatus},
{header:'操作',dataIndex:'id',renderer:renderResult }
]);
var adviserStore = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'<%=request.getContextPath()%>/system/useradviser/query.do?time=' + (new Date).getTime()}),
reader:new Ext.data.JsonReader({
totalProperty:'totalCount',
root:'data'
},[
{name:'id'},
{name:'account'},
{name:'discipline.id'},
{name:'discipline.name'},
{name:'name'},
{name:'password'},
{name:'mobile'},
{name:'email'},
{name:'status'}
]),
remoteSort:true
});
var adviserGrid = new Ext.grid.GridPanel({
id:'adviser-grid',
title:'班主任列表',
store:adviserStore,
region:'center',
width:300,
cm:adviserCm,
sm: new Ext.grid.RowSelectionModel({ singleSelect: true }),
bbar:[
new Ext.PagingToolbar(
{
pageSize:20,
store:adviserStore,
displayInfo:true,
displayMsg:'显示第{0}条到{1}条记录,一共{2}条',
emptyMsg:"没有记录"
})]
}) ;
});
上面是一个使用Extjs3.0 API写的一个班主任列表的页面的JS代码,页面效果如下:
当点击页面上的“删除”按钮时,JS会提示“缺少对象”错误(即genResultDelete 函数找不到),但如果把 Ext.onReady(function(){} ) 内部定义的
var genResultDelete = function(){
alert('delete') ;
} 改为下面方式(即去掉var关键字)就能找到genResultDelete函数
genResultDelete = function(){
alert('delete') ;
}
对于这个问题,这里先做一个简单的分析:
这是由于这个函数调用是来自Ext.onReady(function(){} )外部,也就是说点“删除”按钮时,会触发它的单击事件,此时这个调用是由dom元素发出,调用源来自于Ext.onReady(function(){} )外部,在Ext.onReady(function(){} )外部只能访问其全局变量,不能访问到Ext.onReady(function(){} )内的var方式定义的局部变量。深层次的分析将另写博客分析。
Ext.onReady(function(){} )函数的作用域分析(1)的更多相关文章
- 对于(function(){}())和function(){}实例的作用域分析(里面有很多问题……)
今天在群里看到一个问题,让我纠结了好一会.下面是我的分析,感觉里面还有很多问题,关于作用域还是不太理解,希望大家看到问题第一时间反馈给我,看到实在受不了的地方说几句都没关系,谢谢. 请看题: 1.对象 ...
- (转)Ext.onReady详解
(转自)http://hi.baidu.com/kakarot_java/blog/item/8c34e57360472c148601b013.html 我们知道,只有在Ext框架全部加载完后才能在客 ...
- 1.Ext.onReady详解
转自:https://blog.csdn.net/xufang461010923/article/details/37660139 我们知道,只有在Ext框架全部加载完后才能在客户端的代码中使用Ext ...
- Extjs Ext.onReady的用法
最近在学习Extjs,当然首先学习的肯定是从官网下载下来的example. 从学习上而言对于Extjs,我个人认同的是李林峰老师所言先从视图开始,搞一些所见即所得的东西. 废话有点多,对于Extjs而 ...
- Ext.Js核心函数( 三)
ExtJs 核心函数简介 1.ExtJs提供的常用函数2.get.fly.getCmp.getDom.getBody.getDoc3.query函数和select函数4.encode函数和decode ...
- ExtJS4中Ext.onReady、Ext.define、Ext.create
1.Ext.onReady 说明:onReady内的语句块会在页面上下文加载后再执行. 2.Ext.define 说明:创建类,可以继承其他类,也可以被继承. 例子1: 1 <script ty ...
- [译]JavaScript:函数的作用域链
原文:http://blogs.msdn.com/b/jscript/archive/2007/07/26/scope-chain-of-jscript-functions.aspx 在JavaScr ...
- javascript 函数和作用域(闭包、作用域)(七)
一.闭包 JavaScript中允许嵌套函数,允许函数用作数据(可以把函数赋值给变量,存储在对象属性中,存储在数组元素中),并且使用词法作用域,这些因素相互交互,创造了惊人的,强大的闭包效果.[upd ...
- js中在window.onload中写function函数产生的问题
转载自:https://blog.csdn.net/c_p_h/article/details/63684510 今天在jsp中的form表单利用οnclick=”xxx”来监听js中一个functi ...
随机推荐
- 在.Net中进行跨线程的控件操作(下篇:BackgroundWorker)
在.Net中,如果我们在非UI线程上访问窗体上的控件的时候,会产生一个跨线程调用的异常,那么如何处理这种情况呢?在上一章中,我介绍了使用Control.Invoke方法,如果你不习惯使用委托,那么.N ...
- ubuntu网络连接图标不显示
sudo emacs /etc/NetworkManager/nm-system-settings.conf 将managed的值改为true,保存退出. sudo service network-m ...
- Deep Learning 学习随记(三)续 Softmax regression练习
上一篇讲的Softmax regression,当时时间不够,没把练习做完.这几天学车有点累,又特别想动动手自己写写matlab代码 所以等到了现在,这篇文章就当做上一篇的续吧. 回顾: 上一篇最后给 ...
- javascript调用oc的方法
1.引入#import <JavaScriptCore/JavaScriptCore.h> 2.JSContext *jsContext = [self.webView valueForK ...
- Mysql笔记【4】-查询操作
1.查询所有列数据 select * from 表名 一般情况下,除非使用表中所有字段,最好不要使用通配符 "*",如果不知道所需要的列名,可以使用*查询获取 2.带in关键字的查 ...
- Poj 3259 Wormholes(spfa判负环)
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 42366 Accepted: 15560 传送门 Descr ...
- yum 安装 依赖报错
今天使用yum安装的时候 报错: Error: Multilib version problems found. This often means that the root cause 应该是yum ...
- gitlab的安装以及汉化
gitlab的安装 首先在网上下载好任意版本gitlab的rpm包 推荐下面的地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gi ...
- 分享一下个人的Vim配置文件
强烈拥护开源精神,高举开源大旗,今天我就分享下我自己结合网上还有自己实际使用配的vimrc,可以给各位参考下,不要见笑哈,具体说明我在rc里写的也很详细,可以具体看下,也希望可以借这个机会能多认识认识 ...
- javascript 节点的增,删,改,查
1.创建节点 A.创建元素节点 document.createElement("元素标签名"); B.创建属性节点 document.createAttribut ...