转自:http://blog.csdn.net/trendgrucee/article/details/12679949

1、简介

Dijit是Dojo的UI框架,包含一系列丰富的组件以帮助你快速开发Web程序。考虑到大部分Web页面都是表单元素(指允许用户输入的组件,通常会被传送到服务器进行处理)。Dijit有很多基于表单的组件,包括按钮、文本框、可校验文本框、进度条等等。

另外,Dijit包含了一个可用的主体框架来定义Dijit的视觉效果。Dijit有四个主题:Claro,Tundra,Soria和Nihilo.

2、使用Dijit主题

使用Dijit的主题,需要做两件事情:引入主题的css文件、在页面的body元素上设置CSS clsass属性。你也可以把主题的CSS属性设置在任何的块级元素上。

  1. <head>
  2. <meta charset="utf-8">
  3. <title>Hello Dijit!</title>
  4. <!-- load Dojo -->
  5. <script src="dojo-release-1.9.1/dojo/dojo.js" data-dojo-config="async:true"></script>
  6. <link rel="stylesheet" href="dojo-release-1.9.1/dijit/themes/claro/claro.css">
  7. </head>
  8. <!-- set the claro class on our body element -->
  9. <body class="claro">
  10. <h1 id="greeting">Hello</h1>
  11. <button>click me</button>
  12. </body>

3、以Button为例介绍基本组件的用法

声明式方式创建Button,看例子:

  1. <body class="claro">
  2. <div id="btn1" data-dojo-type="dijit/form/Button"
  3. data-dojo-props="label:'click me',onClick:function(){console.log('yes,clicked');}">
  4. </div>
  5. <script>
  6. require(["dijit/form/Button","dojo/parser","dojo/domReady!"]);
  7. </script>
  8. </body>
  • data-dojo-type:指定我们要使用dijit的Button控件
  • data-dojo-props:设置Button控件的属性,可以查看Button的Api确定有哪些属性可以设置(不仅属性可以设置,方法也可以设置)
  • 可以看到我们在最后的一段script中不仅引入了需要的Button模块,还引入了dojo/parse模块,如果不引入此模块,按钮无法显示,并且事件无法处理。关于dojo/parser模块的作用,我们会在下一篇博客中介绍。现在你只需要知道如果使用声明式使用dijit控件,需要在引入dojo.js的地方时,通过data-dojo-config设置属性parseOnLoad:true(官方文档上这么说,上面的例子没有设置这个属性也能正常运行,待确认),并且引入dojo/parser模块。

编程式方式创建Button,看例子:

  1. <div id="btn2"></div>
  2. <script>
  3. require(["dijit/form/Button","dojo/domReady!"],function(Button){
  4. var button = new Button({
  5. label:'Button2',
  6. onClick:function(){console.log("Button2 Clicked.");}
  7. },"btn2");
  8. button.startup();
  9. });
  10. </script>
  • 查询Button的api查看new Button的参数设置。
  • startup函数:编程式方式创建一个组件之后,应该总是调用组件的startup()方法。编程式创建组件的一个常见的错误就是忘记调用startup()方法。

最新文章

  1. GJM : AlloyTouch实战--60行代码搞定QQ看点资料卡
  2. .net源码分析 - ConcurrentDictionary&lt;TKey, TValue&gt;
  3. jQuery和AngularJS的区别小分析
  4. [综]前景检测GMM
  5. delphi 安装.dpk;package
  6. TO BE OPEN
  7. timestamp 类型的索引
  8. Scrum 项目 6.0 sprint演示
  9. Mac环境下 配置Python数据分析环境
  10. ubuntu1404_server搭建lamp
  11. Flex 教程(1)-------------控件拖动
  12. ECshop 在迁移到 PHP7 时遇到的兼容性问题
  13. Shell数组:shell数组的定义、数组长度
  14. centos ppp拨号
  15. Flex 日志管理
  16. Jenkins中集成python,支持参数生成Makefile文件
  17. Java对【JSON数据的解析】--官方解析法
  18. c++趣味之返回void
  19. Vijos1605 NOIP2008 提高组T4 双栈排序 BFS
  20. iOS设备上出现的click,live,on点击失去效果

热门文章

  1. Java学习之路:2、Mysql 链接与查询
  2. CSS 将按钮转成超链接样式
  3. 【ASP.NET】TreeView控件学习
  4. 操作邮箱的类和文件的Md5【粘】
  5. C# Windows - TabControl
  6. 1047: [HAOI2007]理想的正方形 - BZOJ
  7. POJ2524+并查集
  8. hdu 1907 John
  9. maven 如何解决因本地jar导致的编译错误
  10. 李洪强漫谈iOS开发[C语言-014]-变量