扩展一个button
定义一个dataPd.js(当然目录相对dojo,文件夹为eventTest),内容如下:
dojo.provide("dataPd");
dojo.require("dijit.form.Button");
dojo.require("eventTest。accept");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare('eventTest。dataPd', [dijit._Widget, dijit._Templated], {
widgetsInTemplate: true,
templateString:'<div><button dojoType=dijit.form.Button dojoAttachEvent="onClick: _onClick">Click</button></div>',
oddEvent:function(){
for(var i=0;i<10;i++){
if(i%2==0)
{
dojo.publish("oddEvents",[i]); //如果判断i为偶数,这发布一个事件,传递的参数为此时i的值ֵ
}
}
} ,
_onClick:function(){
var myObject=new eventTest.accept();
dojo.subscribe("oddEvents", myObject,'eventAccept');//点击onClik时订阅这个事件(只需订阅一次即可)即每当oddEvents事件被发布时,即调用myObject对象中的eventAccept函数,通常情况下eventAccept函数应该有一个参数用来接收
this.oddEvent();
},
postCreate:function(){ //次函数为任何对象都会执行的,当然放在这里没用,可以去掉,它是默认的方法
alert("--------");
},
constructor:function(){//次函数为任何对象都会执行的,当然放在这里没用,可以去掉,它是默认的方法
console.log('-----------');
}
});
eventTest.accept类定义如下:
dojo.provide("eventTest.accept");
dojo.declare('eventTest.accept',null, {
constructor:function(){
} ,
eventAccept:function(i){
console.debug(i);
}
});
在html中:
<div dojoType="eventTest.dataPd"></div>
运行此html
出现一个button 点击 查看console输出
0
2
4
6
8
定义一个dataPd.js(当然目录相对dojo,文件夹为eventTest),内容如下:
dojo.provide("dataPd");
dojo.require("dijit.form.Button");
dojo.require("eventTest。accept");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare('eventTest。dataPd', [dijit._Widget, dijit._Templated], {
widgetsInTemplate: true,
templateString:'<div><button dojoType=dijit.form.Button dojoAttachEvent="onClick: _onClick">Click</button></div>',
oddEvent:function(){
for(var i=0;i<10;i++){
if(i%2==0)
{
dojo.publish("oddEvents",[i]); //如果判断i为偶数,这发布一个事件,传递的参数为此时i的值ֵ
}
}
} ,
_onClick:function(){
var myObject=new eventTest.accept();
dojo.subscribe("oddEvents", myObject,'eventAccept');//点击onClik时订阅这个事件(只需订阅一次即可)即每当oddEvents事件被发布时,即调用myObject对象中的eventAccept函数,通常情况下eventAccept函数应该有一个参数用来接收
this.oddEvent();
},
postCreate:function(){ //次函数为任何对象都会执行的,当然放在这里没用,可以去掉,它是默认的方法
alert("--------");
},
constructor:function(){//次函数为任何对象都会执行的,当然放在这里没用,可以去掉,它是默认的方法
console.log('-----------');
}
});
eventTest.accept类定义如下:
dojo.provide("eventTest.accept");
dojo.declare('eventTest.accept',null, {
constructor:function(){
} ,
eventAccept:function(i){
console.debug(i);
}
});
在html中:
<div dojoType="eventTest.dataPd"></div>
运行此html
出现一个button 点击 查看console输出
0
2
4
6
8