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 ...
随机推荐
- [03] SQL优化
1.SQL优化的实质 充分利用索引: 访问尽量少的数据块: 减少表扫描的I/O次数: 尽量避免全表扫描和其他额外开销: 2.oracle数据库常用的两种优化器 RBO(rule-based-optim ...
- oracle 定义临时表
创建Oracle 临时表,可以有两种类型的临时表: 会话级的临时表 事务级的临时表 . 1) 会话级的临时表因为这这个临时表中的数据和你的当前会话有关系, 当你当前SESSION不退出的情况下,临时表 ...
- Runtime 在IOS中的详细使用
因为之前写东西的时候,都在未知笔记中,所有大家没有看到过我的文章,今天就开始使用博客园来进行和大家沟通.好了,废话不那么多了,转入正题.下面我把runtime 给大家介绍一下. ### 一.runti ...
- iOS-开发日志-UIimageView
UIImageView属性 1.Image 设置图片,默认显示 UIImageView *_imageView = [[UIImageView alloc]init]; _imageView. ...
- gulp+browserSync+nodemon 实现express 全端自动刷新的实践
学习过程宝宝心里苦,不能怨政府.. 兴趣所致,一直放不下nodejs的学习,时隔多日,又把express捡起来打算重新再学学,一直没什么太大的长进,和实际的项目经验.真的醉了,太懒了. 今天在重新研究 ...
- 10.10_魔兽账号,OSC代码托管演示,研究SQL别忘记了,git
(1)juedui8456juedui456chixin0769魔兽世界账号112288 (2)EasyXls.开源中国推出 PaaS@OSC 代码演示和运行平台.git.oschina.coding ...
- 在ARM Linux 使用 Valgrind
Linux valgrind 移植到ARM-Linux 一.Cross-Compile/交叉编译 (1)下载及解压Valgrind-3.11 (2)修改confirure 将armv7*)修改为ar ...
- 菜鸟的MySQL学习笔记(二)
3-1约束: 1.约束保证数据的完整性和一致性: 2.约束分表级约束(两个或两个个以上字段的约束)和列级约束(一个字段约束): 3.NOT NULL 非空: PRIMARY KEY ...
- 挂载磁盘的问题(/dev/sdb1 is apparently in use by the system; will not make a 文件系统 here!)
用fdisk给新磁盘分区后.然后要创建文件系统 [root@cuizhipeng ~]# mkfs.ext4 /dev/sdb1mke2fs 1.41.12 (17-May-2010)/dev/sdb ...
- ceph入门学习链接
https://tobegit3hub1.gitbooks.io/ceph_from_scratch/content/introduction/component.html