extjs怎么自定义函数

 我来答
韧劲9
2015-06-08 · TA获得超过9224个赞
知道小有建树答主
回答量:1638
采纳率:92%
帮助的人:353万
展开全部
extjs的自定义事件主要分三步

1.在类中定义事件名称:

Person = function(config) {
Person.superclass.constructor.call(this, config);
this.name = config.name || '';
this.sex = config.sex || '';
this.addEvents({
"nameChange": true,
"sexChange": true
});
};

2.实例化对象,并在该对象中定义事件的监听函数

var person = new Person({
name: 'binoruv',
sex: 'man'
});

person.on("nameChange", function() { alert("Name has been changed to " + this.name); });
person.on("sexChange", function() { alert("Sex has been changed to " + this.sex); });

3.触发事件

Ext.extend(Person, Ext.util.Observable, {
//extend函数中可以自定义新的方法,也可以重写原类的方法
setName: function(_name) {
if (this.name != _name) {
this.name = _name;
this.fireEvent("nameChange", this);
}
},
setSex: function(_sex) {
if (this.sex != _sex) {
this.sex = _sex;
this.fireEvent("sexChange", this);
}
}
});

person.setName("binoruv");
person.setSex("woman");
整个代码如下:
<script type="text/javascript">
Person = function(config) {
/*
此处addEvents是调用Person父类Ext.util.Observable的方法
api中对Observable的描述:一个抽象基类(Abstract base class),为事件
机制的管理提供一个公共接口。子类应有一个"events"属性来
定义所有的事件。
*/
Person.superclass.constructor.call(this, config);

this.name = config.name || '';
this.sex = config.sex || '';
this.addEvents({
"nameChange": true,
"sexChange": true
});
};

Ext.extend(Person, Ext.util.Observable, {
setName : function(_name) {
if (this.name != _name) {
this.name = _name;
this.fireEvent("nameChange", this);
}
},
setSex : function(_sex) {
if (this.sex != _sex) {
this.sex = _sex;
this.fireEvent("sexChange", this);
}
}
});

Ext.onReady(function() {
var person = new Person({
name: 'binoruv',
sex: 'Man'
});

person.on("nameChange", function() { /*debugger;*/Ext.Msg.alert("Message","Name has been changed to " + this.name); });
person.on("sexChange", function() { /*debugger;*/Ext.Msg.alert("Message", "Sex has been changed to " + this.sex); });

person.setName("binoruv");
person.setSex("Woman");
});
</script>
danranli0457
2014-02-11 · TA获得超过4.8万个赞
知道大有可为答主
回答量:7998
采纳率:84%
帮助的人:3960万
展开全部
转:
Ext JS自定义函数,令人崩溃的语法~

项目中有一段一直没看懂,貌似是关于Ext JS中自定义函数的:

Ext.ux.MessageBox = function() {

var msgCt;

function createBox(t, s, data, i) {

…………

}

return {

…………

};

}();

函数(createBox)之后,没有逗号,也没有分号,直接来了个return……。我一下子就晕了。手头能找到的两本书中都没有相应语法的介绍。今天偶然看到某高人的文章,顿时豁然开朗。最后大括号后面又来一对儿括号,这部分还是没有搞明白,以后再来研究吧~转载如下供查阅:

EXTJS的自定义函数,以下语句可创建一个函数:
Ext.Login=function(){

function IsLogin(){
……
}
return{

init:function(){
IsLogin();
},

Login:function(){

……
}
}
刚开始时让我比较郁闷的是这种JS里的函数调用机制,以上代码里,将创建一个名为Ext.Login()的对象,应该相当于一个类的意思吧,然后可在其里面写其他相关的方法。

在return里的为公有方法,这里面的方法可给外部程序调用(如在HTML文件里用),而在return以外的代码是其私有方法,只能在Ext.Login()这个对象里调用

如需要在其他页面调用里面的Login()方法,可直接写

<input id="login" onclick="Ext.Login().Login()" />
如果需要在页面加载时就调用,一般只需直接用EXTJS里的方法即可实现:

Ext.onReady(Ext.Login.init, Ext.Login);
这里的函数名并不需要加括号,第一个参数是要调用的方法,第二个是作用域,一般写此对象名即可。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式