众所周知,在dojo里存在dom和widget两个类型,dom指的是普通类型的HTML元素,包括各种类型的标签、按钮、输入框等等,而widget指的是dojo自身所带的模板,同时也包括按钮、输入框等等。那么在新建两个不同的按钮时,它们会不会存在什么差异呢?实验结果如下:

(1)先在html中新建两个不同类型的button按钮

<html>
<head>
<meta charset="UTF-8">
<title>parser</title>
<link rel="stylesheet" href="../../dojosrc/dijit/themes/claro/claro.css"/>
<script type="text/javascript" src="../../dojosrc/dojo/dojo.js" data-dojo-config="async: true"></script>
<script type="text/javascript" src="parser.js"></script>
</head>
<body>
<div id="oralButton">
<button id="button1" type="button" >OK</button>
</div> <div id="widgetButton">
<button id="button2" data-dojo-type="dijit/form/Button" >You Are Master……</button>
</div>
</body>
</html>

(2)在JS文件中分别对按钮添加click时间,使其在点击后按钮内文字变化。在这里可以看出,两个类型button的click事件处理方法不一致,这是因为对于普通button来说,要先进行new Button()才可以进行dojo的后续操作,而dijit/form/Button则不需要,如果再进行new Button()的话会报“Tried to register widget with id==button2 but that id is already registered”的错误,因为其已经是被register声明了。

require(['dojo/dom',
'dojo/on',
'dojo/dom-attr',
'dijit/registry',
'dojo/parser',
'dijit/form/Button',
'dojo/domReady!']
,function(dom, on, domAttr, registry, parser, Button){
var node =dom.byId('button1');
// 获取button1的innerHTML值
var Value = domAttr.get(node, 'innerHTML');
console.log(Value);
// 将button1的value值赋给label,以供后续更换处理
var button = new Button({
label: Value
},'button1');
// 设置button1的变换值
var buttonClick = function(){
button.set('label', 'I Am hero!');
}; // button的点击事件,也可以用on(dom.byId('button'), 'click', function(){})
//button.on('click', buttonClick);
on(button, 'click', buttonClick ); // 剖析器解析data-dojo-type类型的widget组件
parser.parse(); var Node = registry.byId('button2');
// 获取button2 的label值
var button2Value = domAttr.get(Node, 'label');
console.log(button2Value);
// 将button2的value值赋给label。以供后续更换处理
var clickChange = function(){
domAttr.set(Node, 'label', 'No! I am a hreo!');
}
on(Node, 'click', clickChange);
})
												

dojo下的dom按钮与dijit/form/Button的更多相关文章

  1. dijit.form.Select 基本用法

    dijit.form.Select 1)创建: var division = new dijit.form.Select({ id: "Division",//id必须唯一 nam ...

  2. dijit样式定制(二)dijit.form.Select与dijit.form.NumberSpinner

    dijit.form.Select: Select的样式位于Claro/form/Select.less中,Select主要通过table来布局,下图可以看到Select的布局结构 介绍几个主要的cl ...

  3. 使用selenium webdriver+beautifulsoup+跳转frame,实现模拟点击网页下一页按钮,抓取网页数据

    记录一次快速实现的python爬虫,想要抓取中财网数据引擎的新三板板块下面所有股票的公司档案,网址为http://data.cfi.cn/data_ndkA0A1934A1935A1986A1995. ...

  4. BootStrap学习(2)_下拉菜单&按钮组

    一.下拉菜单 1.基本下拉菜单 如需使用下列菜单,只需要在class .dropdown 内加上下拉菜单即可.下面的实例演示了基本的下拉菜单: <!DOCTYPE html> <ht ...

  5. 去掉video视频播放器下的下载按钮

    去掉video视频播放器下的下载按钮: video::-internal-media-controls-download-button { display:none; } video::-webkit ...

  6. 【原创】smarty引擎下的导航按钮高亮实现

    <?php$_nvaarr = array( array('name'=>'首页','url'=>'company.php?id='), array('name'=>'公司介绍 ...

  7. 自定义 Swiper 的上一页,下一页按钮

    1. Swiper 的上一页,下一页按钮,不是必需包含在container 中的 2. 定义上一页,下一页按钮的样式,CSS略.... 3. 在初始化Swiper中,定义上一页,下一页按钮

  8. 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    [源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...

  9. 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    介绍背水一战 Windows 10 之 控件(按钮类) ButtonBase Button HyperlinkButton RepeatButton ToggleButton AppBarButton ...

随机推荐

  1. postman测试请求参数中文乱码问题

    用IDEA调试代码时,用postman测试请求url,发现post或者get请求中参数是中文的话,后台获取的参数是乱码, 一般两个方面 发送请求的一方:postman的问题 接受请求的一方:tomca ...

  2. Redis连接方式

    连接redis 本地安装了Redis并运行在6379端口,密码设置为 foobared. 1. from redis import StrictRedis redis = StrictRedis(ho ...

  3. Sqlsession 的理解

    MyBatis的持久化解决方案是将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以以面向对象的方式来进行持久化层操作.底层数据库连接的获取,数 ...

  4. 芯灵思SinlinxA33开发板 Linux平台总线设备驱动

    1.什么是platform(平台)总线? 相对于USB.PCI.I2C.SPI等物理总线来说,platform总线是一种虚拟.抽象出来的总线,实际中并不存在这样的总线. 那为什么需要platform总 ...

  5. windows知识点2

    最近在使用win10系统的过程中,无法获取dns报错,上不了网.经过一番折腾,最终在用下面的方法,解决了问题.第二步很关键.完成步一下步骤重启电脑应该就可以上网了.12第一步:使用 ipconfig ...

  6. DNS 负载均衡

    相关文章: 文章 网址 一个域名可以绑定多个IP吗?由此引发的调查 https://ask.zkbhj.com/?/article/139

  7. layui select 选完其他选项, 手工清空选项 又恢复最初的选项?

    启用layui的select  下拉搜索项: lay-search <div class="layui-inline"> <label class="l ...

  8. windows 端口转发

    1.添加端口转发 netsh interface portproxy add v4tov4 listenport=5000 listenaddress=10.30.3.148 connectport= ...

  9. pagination.js 使用

    pagination.js 使用方式 $('.paginationjs').pagination({ dataSource: 'DetailImage?handler=Search', locator ...

  10. note 8 字符串

    字符串String 一个字符的序列 使用成对的单引号或双引号括起来 或者三引号""" 和 ''' 表示块注释 字符串运算 长度 len()函数 first_name = ...