- 浏览: 759959 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Ripin_Yan:
写的挺透彻
session与cookie的区别? -
1045565111:
谢谢,运行起来了,非常不错~~~
EXTJS动态树的实现 -
hlxhf5000:
找了半天,机会都没有全套的下载
ExtJs视频教程集锦 -
slysuccess:
讲解的非常好!以前还不是太明白,现在终于明白了!谢谢博主
ExtJs中关于grid和store的应用分析(二) -
yixiandave:
怎么看都蛋疼啊。。
js继承的实现
我在一个论坛看到EXT传递参数的问题,觉得很多学EXT的人都会碰到:
++++++++++++++++++++++++++++++++++++++++
通过示例代码中的msg-box.js
我们可以看到
Ext.get('mb1').on('click', function(e){
Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?', showResult);
});
这样的代码,还有它的回调函数showResult:
function showResult(btn){
Ext.example.msg('Button Click', 'You clicked the {0} button', btn);
};
function showResultText(btn, text){
Ext.example.msg('Button Click', 'You clicked the {0} button and entered the text "{1}".', btn, text);
};
(这里我把两个回调函数都放上来,用来说明我的问题)
我想请教的是:其中的匿名函数function(e)、showResult(btn)及showResultText(btn, text)中的参数如何来定义,我如何才能知道这些函数的具体意义,因为这里好像没有文档可查。也许在这里提出这个问题让您不好回答,请继续往下看。我出 现这个问题是在这里遇到的:
在Layout Dialog示例中的layout.js中:
有dialog.addButton('Submit', dialog.hide, dialog);这样一行代码,也就是说增加一个submit按钮,点击后dialog隐藏。
但如果我想让这个按钮加入回调函数或获取某些特定内容的值,这样问题就出现了,我是这样实现的:
dialog.addButton('Submit', function(a,b){
alert(a);
alert(b);
}, dialog);
但我不知道function(a,b)中a和b代表什么(alert出来都是object,当我加到三个参数时就是未定义了,也就是说这个方法支持两个参数),因为好像这里没有文档。
当然,如果有其它方法来实现类似功能您也可以提出,但最好是解答一下我的问题,我不知道如何入手这个function
++++++++++++++++++++++++++++++++++++++++++
以上是我在论坛中看到的一个帖子,并且有人这样回复:
fangzhouxing 写道
这个确实是一个Ext文档不全的问题. 只能查看源代码来解决了.
这个文档中其实是有说明的,而且不含糊,你仔细看的话就能理解。
看这个前先得理解各个支持事件响应的类的on或addListener方法,它的后面两个参数表示的是什么意思?scope和options,如果你知道了,那么在事件触发的时候想调用自定义的或EXT中已有的函数就不费解了。这里scope(作用域)默认指的是事件触发时所作用的对象,而当事件触发后会传递给响应函数什么参数呢?像普通的HtmlElement对象(比如一个表单按钮)都会传一个EventObject实例对象,像EXT中自定义的函数触发的话,API中有说明:
比如Ext.MessageBox的confirm方法,是这么解释的:
confirm( String title, String msg, [Function fn], [Object scope] ) : Ext.MessageBox
Displays a confirmation message box with Yes and No buttons (comparable to JavaScript's confirm). If a callback function is passed it will be called after the user clicks either button, and the id of the button that was clicked will be passed as the only parameter to the callback (could also be the top-right close button).
看最后一句:and the id of the button that was clicked will be passed as the only parameter to the callback,只传递你所点击的按钮(“确认”或“取消”)的按钮本身或它的id,也就是说只有一个参数,这样的话,你的响应函数就可以定义成function(aaa){...}那么这个aaa就是这个你点击的按钮的id了。
同样,再看一下Ext.MessageBox的prompt方法,是这么解释的:
prompt( String title, String msg, [Function fn], [Object scope], [Boolean/Number multiline], [String value] ) : Ext.MessageBox
Displays a message box with OK and Cancel buttons prompting the user to enter some text (comparable to JavaScript's prompt). The prompt can be a single-line or multi-line textbox. If a callback function is passed it will be called after the user clicks either button, and the id of the button that was clicked (could also be the top-right close button) and the text that was entered will be passed as the two parameters to the callback.
也就是会传递2个参数,
1、事件触发时所点击的按钮本身或按钮的id
2、在输入框中输入的文本值。
这样在你自定义或已有的响应函数你就可以这样定义了,function(first,second){...}其中第一个参数是1、中说的,第二个参数是2中说的。
另外,像EXT的API中很多组件都有Public Events这部分内容,就是会响应的事件列表,这个写法是什么意思呢?
比如,Ext.Window下的move事件,API中是这样写的:
move : ( Ext.Component this, Number x, Number y )
Fires after the component is moved.
Listeners will be called with the following arguments:
this : Ext.Component
x : Number
The new x position
y : Number
The new y position
指的是当move(窗口移动)事件发生时,会有3个参数产生,这3个参数是能够传递给你的响应函数的。那么这个时候你的响应函数就可以这样定义:
function(component,positionX,positionY){....}
(里面的参数名随便写),或者可以根据你的需要可以少定义几个参数,但是这里的话最多就是3个参数,而且是按move事件传递给你的参数顺序来的(比如第一个参数一定是Ext.Component类型的,第二个参数一定是Number类型的,并且是个x坐标值,第三个参数一定是个Number类型的,一定是个y坐标值),如果你非要这样定义:function(component,positionX,positionY,otherparam){....}
那么你的函数体里其实是获得不了otherparam的。
EXT组件中的Public Events部分都是这样的。如果理解了事件机制,那么如何定义和使用响应函数就很顺利了。
请看下面的示例代码并结合之上提的有关Ext.Window的move事件的API:
Ext.onReady(function(){ var win = new Ext.Window({ title:'响应窗口移动事件的例子', width:400, height:300, html:'<br/><br/><p><center>这是响应窗口移动事件的例子,请注意响应函数中的参数</center></p>' }); win.on("move",moving); win.show(); }); moving = function(c,x,y){ alert("移动窗口的id:" + c.id); alert("窗口移动后的x坐标值:" + x); alert("窗口移动后的y坐标值" + y); }; //也可以这样定义:去掉注释,并把上面定义的给注释掉即可 /* moving = function(c,x){ alert("移动窗口的id:" + c.id); alert("窗口移动后的x坐标值:" + x); } */ //也可以这样定义:去掉注释,并把上面定义的给注释掉即可 /* moving = function(c){ alert("移动窗口的id:" + c.id); }
评论
7 楼
woshizzza
2011-12-27
请教:这些个参数是如何被传入的?
比如点击一个树节点,就传入一个node参数,然后就可以使用了,这个参数是怎么被获取到得。原生的参数应该是一个eventObject吧?
比如点击一个树节点,就传入一个node参数,然后就可以使用了,这个参数是怎么被获取到得。原生的参数应该是一个eventObject吧?
6 楼
chunyou128
2008-11-22
5 楼
slmdyk
2008-08-12
我来的比较晚,不过我看懂了!
谢谢楼主!
谢谢楼主!
4 楼
jianfeng008cn
2008-05-31
引用
ccz010 2008-05-27
路过踩一下,要点不错 :》
ext 东西不错,不过文档能省的还就省了 哎
路过踩一下,要点不错 :》
ext 东西不错,不过文档能省的还就省了 哎
ext 的文档已经很好了 找找自己的原因吧
3 楼
西门一堆雪
2008-05-31
我觉得在讲Ext之前应该讲一下JS的作用域和类原型等知识。这样理解起来会容易很多!你觉得呢?
2 楼
ccz010
2008-05-27
路过踩一下,要点不错 :》
ext 东西不错,不过文档能省的还就省了 哎
ext 东西不错,不过文档能省的还就省了 哎
1 楼
ttitfly
2008-05-16
好文
发表评论
-
关于Ext2.2中调用iframe,无法打开 Internet 站点
2009-02-26 13:40 2965在 EXT2.0运行正常的程序,调换 EXT2.2 的脚本之 ... -
对applyTo和renderTo的理解和思考
2008-10-06 15:54 18024extjs中经常会用到renderTo ... -
ExtJs视频教程集锦
2008-09-03 12:55 25884《ExtJs视频教程》全套已全面出炉,欢迎大家关注!目录如下: ... -
ExtJs中关于grid和store的应用分析(三)
2008-08-29 16:01 5595第三部分:解析器与数 ... -
ExtJs中关于grid和store的应用分析(二)
2008-08-29 13:45 9628第二部分:Store的核心阐释 Store即数据存储器,主 ... -
ExtJs中关于grid和store的应用分析(一)
2008-08-29 12:35 11073第一部分:阐述grid与st ... -
应用ExtJs时解决乱码的方法
2008-08-22 17:54 10003一般情况下,项目采用了UTF-8的字符集格式,那么所有的js文 ... -
序号结合分页功能的实现
2008-08-15 11:18 3776序号结合分页显示:一 ... -
ExtJs想入门的请进-解读API
2008-07-22 10:49 9175如果你对EXT有兴趣但不知道如何下手,如果你有了API但不知道 ... -
关于动态树的完整示例代码下载
2008-07-14 15:57 7618应网友反馈,现提供动态树的完整示例代码工程,以方便大家学习和交 ... -
ExtJs中关于mask()的应用说明
2008-06-30 10:25 12275Ext.Msg.alert( String title, St ... -
EXTJS动态树的实现
2008-06-25 00:27 28810EXTJS动态树的实现举例 一、描述:通过dwr实现JS与后台 ... -
透析Extjs源码之layout(二)FormPanel与FormLayout的关系
2008-05-16 10:38 6190理解了layout之后,再看看FormPanel源码,发现它指 ... -
透析Extjs源码之layout(一)layout的实现
2008-05-16 09:48 59381、配置选项layout什么时候可用? 只有Ext.Conta ... -
透析Extjs的Ext.js源码(五)分析继承的实现
2008-05-15 14:33 10142ext中有关继承的实现的关键代码如下:(Ext.js中) e ... -
透析Extjs的Ext.js源码(四)去理解Ext.js
2008-05-14 18:00 2576//先定义匿名方法,第一个括号对里的,必须要有这个括号对, ... -
透析Extjs的Ext.js源码(三)扩展
2008-05-14 18:00 2433if(!Person.extend){//若extend属 ... -
透析Extjs的Ext.js源码(二)能在定义时就能执行的方法的写法 function(){...}
2008-05-14 17:59 4030/** * 第二部分:能在 ... -
透析Extjs的Ext.js源码(一)对象属性的添加和设置
2008-05-14 17:57 5763/** * 分析Ext.js */ /** ... -
extjs视频教程系列之-第一讲:ExtJS介绍及应用举例
2008-05-06 15:13 8181地址: http://bbs.langsin.com/view ...
相关推荐
在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理主要由EventManager.js这个文件负责,它是EXTJS事件系统的基础。 首先,EXTJS的事件机制基于观察者...
extjs下载 extjs源码 extjsApi,全部包括在这里面
Extjs 4.0中文版API
EXTJS 3.0是其历史版本之一,提供了一套完整的组件模型、数据绑定、布局管理以及丰富的用户界面控件。这个源码包不仅包含了EXTJS 3.0的核心库,还提供了相关的文档和代码示例,这对于开发者深入理解EXTJS的工作原理...
extjs 源码,有兴趣的可以学习下
标签“extjsAPI”,“extjs”,“extjs2源码”,“API”进一步强调了主题内容,它们分别对应EXTJS的API,EXTJS框架本身,EXTJS2的源码,以及API文档的重要性。 在提供的压缩文件中,我们有以下三个关键文件: 1. `...
Extjs 中文API文档,有对Extjs相关API的中文说明
ExtJs 4 API 中文
适合ExtJs开发人员extjs技术上手以及深入
很实用的示例及文档。版本为4.1,对初学者以及开发人员很有帮助。 很实用的示例及文档。版本为4.1,对初学者以及开发人员很有帮助。
关于API文档,ExtJS提供了详细的在线文档,包括类的定义、方法、事件、配置选项等。开发者可以通过查阅这些文档来了解每个类的功能和用法,这对于编写ExtJS代码至关重要。 在压缩包的文件名列表中提到的"extjsdemo...
extjsapi,extjs文档,api手岫
7. **事件处理**:EXTJS的事件驱动模型允许开发者通过监听和响应事件来控制应用的行为。它支持组件间事件、DOM事件和自定义事件。 8. **工具栏和菜单**:EXTJS提供了工具栏(Toolbar)和下拉菜单(Menu)组件,可以...
ExtJs+4.1.0_API[中文版]
ExtJS 4.1 中文版API [脚本娃娃---开源文档翻译组]历时一年多完整翻译。 在此友情扩散下载,非常完整详细! 学习ExtJS必备的帮助文档,而且对其中的API进行了汉化,更有利于ExtJS的学习!
最新的extjs4 中文api,学习者的好帮手。
extjs4的中文api,已汉化80%,打开速度快,方便
extJS myeclipse源码示例
Extjs 4.1中文版api,非常难得的一款4.1的中文api,值得大家收藏
ExtJS-6.2.0官方离线API文档