dojo是什么?

来源:互联网 发布:acfun淘宝店 编辑:程序博客网 时间:2024/04/30 11:29

dojo:

Dojo是一个用JavaScript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)),这也是为什么叫它a unifined toolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些、长期存在 、历史问题,以及DHTML 跨浏览器问题。

Dojo能够让你更容易使Web页面具有动态能力,或者在任何能够稳定支持JavaScript语言的环境中发挥作用。其实就是美化你的网页。

如果你要使用dojo,首先你要声明:

[javascript] view plaincopy
  1. <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"  
  2.         djConfig="parseOnLoad: true">  
  3.  </script>  
  4.  <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css"/>  



一个简单的例子:dojo.query

我们已经有 dojo.byId(类似document.get Element ById) 。然而,应用程序中每个节点的唯一ID,可以是一个艰巨的和不切实际的的任务。这也将是低效找到并在多个节点上单独操作ID。值得庆幸的是,有另一种解决方案:dojo.querydojo.query方法使用熟悉的CSS查询(你在你的样式表使用)检索一个节点列表,其中包括支持先进的CSS3选择器

[javascript] view plaincopy
  1.  dojo.query("#header > h1")  //ID 为 header 的元素的直接子节点中的 h3 元素    
  2. dojo.query("span[title^='test']") // 属性 title 以字符串 test 开头的 span 元素    
  3. dojo.query("div[id$='widget']") // 属性 id 以字符串 widget 结尾的 div 元素    
  4. dojo.query("input[name*='value']") // 属性 name 包含子串 value 的 input 元素    
  5. dojo.query("#myDiv, .error") // 组合查询,结果中包含 ID 为 myDiv 的元素和 CSS 类为 error 的元素    
  6. dojo.query(".message.info") // 同时包含了 CSS 类 message 和 info 的元素,注意两个类之间不包含空格    
  7. dojo.query("tr:nth-child(even)") // 出现在父节点的偶数位置的 tr 元素    
  8. dojo.query("input[type=checkbox]:checked") // 所有选中状态的复选框    
  9. dojo.query(".message:not(:nth-child(odd))") // 嵌套子查询,选中包含 CSS 类 message,    

dojo开源包中包含主要3个文件夹:dojo,dijit,dojox。dijit是许多ajax的小部件组成,举一个典型的小部件:dijit.Tooltip:

[javascript] view plaincopy
  1. <html> <head>  
  2.         <style type="text/css">  
  3.             body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }  
  4.         </style>  
  5.         <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"  
  6.         djConfig="parseOnLoad: true">  
  7.         </script>  
  8.         <script>  
  9.             dojo.require("dijit.Tooltip");  
  10.             dojo.require("dijit.form.Button");  
  11.         </script>  
  12.         <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css"  
  13.         />  
  14.         <style type="text/css">  
  15.             .box { color: white; background-color: #ba2929; width: 200px; height:  
  16.             50px; padding: 10px; }  
  17.         </style>  
  18.     </head>  
  19.       
  20.     <body class=" claro ">  
  21.         <div class="box">  
  22.             Example content above button  
  23.         </div>  
  24.         <button id="buttonId" dojoType="dijit.form.Button">  
  25.             Longanimity  
  26.         </button>  
  27.         <button id="button2" dojoType="dijit.form.Button">  
  28.             Tooltip below  
  29.         </button>  
  30.         <div class="box">  
  31.             Example content below button  
  32.         </div>  
  33.         <div dojoType="dijit.Tooltip" connectId="buttonId" position="above">  
  34.             a  
  35.             <i>  
  36.                 disposition  
  37.             </i>  
  38.             to bear injuries patiently :  
  39.             <b>  
  40.                 forbearance  
  41.             </b>  
  42.         </div>  
  43.         <div dojoType="dijit.Tooltip" connectId="button2" position="below">  
  44.             a  
  45.             <i>  
  46.                 disposition  
  47.             </i>  
  48.             to bear injuries patiently :  
  49.             <b>  
  50.                 forbearance  
  51.             </b>  
  52.         </div>  
  53.          
  54.     </body>  
  55.   
  56. </html>  

一个简单的演示效果,可以看出dojo的tooltip是非常美观的。
原创粉丝点击