加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Dojo自定义小部件样例

发布时间:2020-12-16 21:25:09 所属栏目:百科 来源:网络整理
导读:样例一: htmlheadmetacharset="UTF-8"linkrel="stylesheet"href="dijit/themes/soria/soria.css"scripttype="text/javascript"src="dojo/dojo.js"djConfig="parSEOnLoad:true"/scripttitleCustomWidget/titlescripttype="text/javascript"require(["dojo/_b

样例一:

<html>
<head>
<metacharset="UTF-8">
<linkrel="stylesheet"href="dijit/themes/soria/soria.css">
<scripttype="text/javascript"src="dojo/dojo.js"djConfig="parSEOnLoad:true"></script>
<title>CustomWidget</title>
<scripttype="text/javascript">
require([
"dojo/_base/declare","dijit/_WidgetBase","dijit/_TemplatedMixin","dojo/dom-construct","dojo/parser","dojo/domReady!"
],function(declare,_WidgetBase,_TemplatedMixin,domConstruct){
//创建DOM节点小部件
declare("Counter",[_WidgetBase],{
//计数器
_i:1,buildRendering:function(){
//创建该小部件的DOM树
this.domNode=domConstruct.create("button",{
innerHTML:this._i
});
},//postCreate函数依赖进行事件连接this.connect或this.disconnect
postCreate:function(){
//用户每点击一次按钮,计数器增加1
this.connect(this.domNode,"onclick","increment");
},increment:function(){
this.domNode.innerHTML=++this._i;
}
});
//模板化小部件
declare("CounterText",[_WidgetBase,_TemplatedMixin],{
//计数器
_i:0,templateString:"<div>"+"<buttondojoAttachEvent='onclick:increment'>增加计数</button>"+"&nbsp;当前计数:<spandojoAttachPoint='counter'>0</span>"+"</div>",increment:function(){
this.counter.innerHTML=++this._i;
}
});
});
</script>
</head>
<bodyclass="soria">
<spandojoType="Counter"></span>
<br>
<spandojoType="CounterText"></span>
</body>
</html>

输出结果:

wKiom1Rl7HjyGO5aAAAbSRd0U8Q174.jpg

--采用attributeMap将小部件的属性映射为DOM节点的属性、innerHTML或类:

<html>
<head>
<title>BusinessCard</title>
<styletype="text/css">
body,html{margin:0;height:100%;width:100%;}
.businessCard{border:3pxinsetgray;margin:1em;}
.employeeName{color:blue;}
.specialEmployeeName{color:red;}
</style>
<linkrel="stylesheet"href="dijit/themes/tundra/tundra.css">
<scripttype="text/javascript"src="dojo/dojo.js"djConfig="parSEOnLoad:true"></script>
<scripttype="text/javascript">
require([
"dojo/_base/declare",_TemplatedMixin){
declare("BusinessCard",{
//初始化参数,设置默认属性值
name:"unknown",nameClass:"employeeName",phone:"unknown",//模板文件
templateString:"<divclass='businessCard'>"+"<div>姓名:<spandojoAttachPoint='nameNode'></span></div>"+"<div>电话#:<spandojoAttachPoint='phoneNode'></span></div>"+"</div>",//将小部件的属性映射为DOM节点的属性、innerHTML或类
attributeMap:{
name:{
node:"nameNode",type:"innerHTML"
},nameClass:{
node:"nameNode",type:"class"
},phone:{
node:"phoneNode",type:"innerHTML"
}
}
});
});
</script>
</head>
<bodyclass="tundra">
<spandojoType="BusinessCard"name="陈德选"phone="(010)63981212">
</span>
<spandojoType="BusinessCard"name="刘泊芸"nameClass="specialEmployeeName"phone="(010)63967113">
</span>
</body>
</html>

输出:

wKiom1Rl8NaDorY1AABaPd2jZTU161.jpg

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读