`
xiamizy
  • 浏览: 91865 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
78437efc-ad8e-387c-847f-a092d52e81a6
spring framew...
浏览量:4936
社区版块
存档分类
最新评论

Dojo实用API

 
阅读更多

模块:dojo.dom

dojo.dom.isNode

测试指定对象是否为节点

Usage Example:

dojo.dom.isNode(dojo.byId('edtTitle'));


dojo.dom.getUniqueId

取得唯一id

Usage Example:

dojo.dom.getUniqueId(); //will return dj_unique_#


dojo.dom.firstElement = dojo.dom.getFirstChildElement

取得指定节点下的第一个满足指定Tag条件的子节点

Usage Example:

dojo.dom.firstElement(parentNode, 'SPAN');


dojo.dom.lastElement = dojo.dom.getLastChildElement

取得指定节点下的最后一个满足指定Tag条件的子节点

Usage Example:

dojo.dom.lastElement(parentNode, 'SPAN');


dojo.dom.nextElement = dojo.dom.getNextSiblingElement

取得指定节点的下一个满足指定Tag条件的子节点

Usage Example:

dojo.dom.nextElement(node, 'SPAN');


dojo.dom.prevElement = dojo.dom.getPreviousSiblingElement

取得指定节点的前一个满足指定Tag条件的子节点

Usage Example:

dojo.dom.prevElement(node, 'SPAN');


dojo.dom.moveChildren

把指定节点下的所有子节点移动到目标节点下,并返回移动的节点数

Usage Example:

dojo.dom.moveChildren(srcNode, destNode, true); //仅移动子节点,srcNode中的文字将被丢弃
dojo.dom.moveChildren(srcNode, destNode, false);//包括文字和子节点都将被移动到目标节点下


dojo.dom.copyChildren

把指定节点下的所有子节点复制到目标节点下,并返回复制的节点数

Usage Example:

dojo.dom.moveChildren(srcNode, destNode, true); //仅复制子节点,srcNode中的文字将被忽略
dojo.dom.moveChildren(srcNode, destNode, false);//包括文字和子节点都将被复制到目标节点下


dojo.dom.removeChildren

删除指定节点下的所有子节点,并返回删除的节点数

Usage Example:

dojo.dom.moveChildren(node);


dojo.dom.replaceChildren

用指定的新节点替换父节点下的所有子节点

Usage Example:

dojo.dom.replaceChildren(node, newChild); //目前还不支持newChild为数组形式


dojo.dom.removeNode

删除指定的节点

Usage Example:

dojo.dom.removeNode(node);


dojo.dom.getAncestors

返回指定节点的父节点集合

Usage Example:

dojo.dom.getAncestors(node, null, false); //返回所有的父节点集合(包括指定的节点node)
dojo.dom.getAncestors(node, null, true); //返回最近的一个父节点
dojo.dom.getAncestors(node, function(el){/* 此处增加过滤条件 */return true}, false); //返回所有满足条件的父节点集合


dojo.dom.getAncestorsByTag

返回所有符合指定Tag的指定节点的父节点集合

Usage Example:

dojo.dom.getAncestorsByTag(node, 'span', false); //返回所有的类型为SPAN的父节点集合
dojo.dom.getAncestorsByTag(node, 'span', true); //返回最近的一个类型为SPAN的父节点


dojo.dom.getFirstAncestorByTag

返回最近的一个符合指定Tag的指定节点的父节点

Usage Example:

dojo.dom.getFirstAncestorByTag(node, 'span'); //返回最近的一个类型为SPAN的父节点


dojo.dom.isDescendantOf

判断指定的节点是否为另一个节点的子孙

Usage Example:

dojo.dom.isDescendantOf(node, ancestor, true); //判断node是否为ancestor的子孙
dojo.dom.isDescendantOf(node, node, false); //will return true
dojo.dom.isDescendantOf(node, node, true); //will return false


dojo.dom.innerXML

返回指定节点的XML

Usage Example:

dojo.dom.innerXML(node);


dojo.dom.createDocument

创建一个空的文档对象

Usage Example:

dojo.dom.createDocument();


dojo.dom.createDocumentFromText

根据文字创建一个文档对象

Usage Example:

dojo.dom.createDocumentFromText('<?xml version="1.0" encoding="gb2312" ?><a>1</a>','text/xml');

doc.load

根据文件装在XML

Usage Example:

var doc = dojo.dom.createDocument();


doc.load('http://server/dojo.xml');


dojo.dom.prependChild

将指定的节点插入到父节点的最前面

Usage Example:

dojo.dom.prependChild(node, parent);


dojo.dom.insertBefore

将指定的节点插入到参考节点的前面

Usage Example:

dojo.dom.insertBefore(node, ref, false); //如果满足要求的话就直接退出
dojo.dom.insertBefore(node, ref, true);


dojo.dom.insertAfter

将指定的节点插入到参考节点的后面

Usage Example:

dojo.dom.insertAfter(node, ref, false); //如果满足要求的话就直接退出
dojo.dom.insertAfter(node, ref, true);


dojo.dom.insertAtPosition

将指定的节点插入到参考节点的指定位置

Usage Example:

dojo.dom.insertAtPosition(node, ref, "before");//参考节点之前
dojo.dom.insertAtPosition(node, ref, "after"); //参考节点之后
dojo.dom.insertAtPosition(node, ref, "first"); //参考节点的第一个子节点
dojo.dom.insertAtPosition(node, ref, "last"); //参考节点的最后一个子节点
dojo.dom.insertAtPosition(node, ref); //默认位置为"last"


dojo.dom.insertAtIndex

将指定的节点插入到参考节点的子节点中的指定索引的位置

Usage Example:

dojo.dom.insertAtIndex(node, containingNode, 3); //把node插入到containingNode的子节点中,使其成为第3个子节点


dojo.dom.textContent

设置或获取指定节点的文本

Usage Example:

dojo.dom.textContent(node, 'text'); //设置node的文本为'text'
dojo.dom.textContent(node); //返回node的文本


dojo.dom.hasParent

判断指定节点是否有父节点

Usage Example:

dojo.dom.hasParent(node);


dojo.dom.isTag

判断节点是否具有指定的tag

Usage Example:

var el = document.createElement("SPAN");
dojo.dom.isTag(el, "SPAN"); //will return "SPAN"
dojo.dom.isTag(el, "span"); //will return ""
dojo.dom.isTag(el, "INPUT", "SPAN", "IMG"); //will return "SPAN"

模块:dojo.event

终于进入有名的dojo事件处理系统的学习了,学习前建议读者先去补习一下AOP的相关知识

dojo.event.connect

绑定指定的方法到指定的对象的方法上

Usage Example:

简单绑定1

function doOnClick1()
{
alert("Clicked!");
}
dojo.event.connect(dojo.byId("inputTest"),"onclick","doOnClick1");

简单绑定2

obj = { doOnClick2: function(){ alert("Clicked!");}}
dojo.event.connect(dojo.byId("inputTest"),"onclick",obj,"doOnClick2");

如果存在需要进行多个事件的绑定的时候,你就会看到dojo的方便之处了

obj2 = { doOnClick2: function(){alert("Clicked!");}}
dojo.event.connect(dojo.byId("inputTest"),"onclick",obj,"doOnClick2");
dojo.event.connect(dojo.byId("inputTest"),"onclick",obj2,"doOnClick2");

connect可以对任何对象的方法进行绑定,而不是只能针对DOM对象

dojo.event.connect(obj,"doOnclick2","doOnClick1"); //在调用obj.doOnclick2()后调用doOnClick1()


dojo.event.connectBefore

dojo.event.connect默认是后绑定,connectBefore则是早绑定,绑定的方法将在指定方法前执行,用法与connect一致


dojo.event.connectAround

Usage Example:

function aroundTest(invocation){
//此处可以增加代码,比如检查参数(invocation.args)
var result = invocation.proceed();
//此处可以增加代码,比如修改结果(result)
return result;
}
dojo.event.connectAround(dojo.byId("inputTest"),"onclick","aroundTest");


dojo.event.connectOnce
说起这个函数,还真的是让我想了半天,直觉上我就把它想象成executeOnce,结果测试的结果让我差点想不通
connectOnce就是指保证只绑定一次,来避免重复绑定会导致的重复执行的问题


dojo.event.disconnect

解除绑定,调用参数与connect一致,即可解除之前的绑定操作


dojo.event.log

在执行指定对象的指定方法后自动记录日志

Usage Example:

dojo.event.log(obj, "doOnClick"); //当调用obj.doOnClick时记录下日志"DEBUG: ([object Object]).doOnClick : "

你也可以这样写:

dojo.event.log({srcObj: obj, srcFunc: "doOnClick"});


dojo.event.kwConnect

kwConnect可以做到更加灵活的绑定,比如可以设置延迟执行绑定

Usage Example:

dojo.event.kwConnect({
srcObj: dojo.byId("inputTest"),
srcFunc: "onclick",
adviceObj: obj,
adviceFunc: "doOnclick2",

type: "before", //默认为"after",可选: "before", "around",注意:type是用来决定adviceFunc的行为的,如果为"around",则aroundFunc将失效
aroundObj: null,
aroundFunc: null, //如果指定了aroundFunc,则其将对adviceFunc进行拦截,但是当type为"around"时,则aroundFunc将不会执行
once: false, //默认为false,允许重复绑定
delay: 3000, //延时3秒后执行adviceFunc
rate: 0, //这个从源代码没有看懂起什么作用
adviceMsg: false //这个从源代码没有看懂起什么作用
});


dojo.event.kwDisconnect

用来解除使用kwConnect指定的绑定


模块:dojo.event.topic

Topic机制与Advice机制都能够实现事件的绑定,但是显然,Topic更适合处理多重绑定。
发布主题,然后由用户订阅的机制就是一个典型的观察者模式

dojo.event.topic.registerPublisher

注册主题发布器

Usage Example:

dojo.event.topic.registerPublisher("myTopic", obj, "doOnClick2");


dojo.event.topic.subscribe

订阅主题

Usage Example:

dojo.event.topic.subscribe("myTopic", "test"); //执行obj.doOnClick2()以后会自动执行test()


dojo.event.topic.unsubscribe

取消订阅主题

Usage Example:

dojo.event.topic.unsubscribe("myTopic", "test");


dojo.event.topic.destroy

删除主题,此主题所有的订阅都将失效

Usage Example:

dojo.event.topic.destroy("myTopic");


模块:dojo.event.browser

dojo.event.browser.addListener

增加监听器

Usage Example:

function listener()
{
alert("ok");
}
dojo.event.browser.addListener(document, 'mousedown', listener); //事件名称可以加上"on",也可以没有"on"
dojo.event.browser.addListener(document, 'onmousedown', listener, true); //capture为真表示不受上层元素的事件控制


dojo.event.browser.removeListener

清除监听器(这个方法似乎是无效的)


dojo.event.browser.callListener

调用监听器

Usage Example:

dojo.event.browser.callListener(listener, document);


dojo.event.browser.stopPropagation

阻止Event传播

Usage Example:

dojo.event.browser.stopPropagation();


dojo.event.browser.preventDefault

将当前事件的返回值设置为false

Usage Example:

dojo.event.browser.preventDefault();


dojo.event.browser.keys

键定义:
KEY_BACKSPACE: 8,
KEY_TAB: 9,
KEY_ENTER: 13,
KEY_SHIFT: 16,
KEY_CTRL: 17,
KEY_ALT: 18,
KEY_PAUSE: 19,
KEY_CAPS_LOCK: 20,
KEY_ESCAPE: 27,
KEY_SPACE: 32,
KEY_PAGE_UP: 33,
KEY_PAGE_DOWN: 34,
KEY_END: 35,
KEY_HOME: 36,
KEY_LEFT_ARROW: 37,
KEY_UP_ARROW: 38,
KEY_RIGHT_ARROW: 39,
KEY_DOWN_ARROW: 40,
KEY_INSERT: 45,
KEY_DELETE: 46,
KEY_LEFT_WINDOW: 91,
KEY_RIGHT_WINDOW: 92,
KEY_SELECT: 93,
KEY_F1: 112,
KEY_F2: 113,
KEY_F3: 114,
KEY_F4: 115,
KEY_F5: 116,
KEY_F6: 117,
KEY_F7: 118,
KEY_F8: 119,
KEY_F9: 120,
KEY_F10: 121,
KEY_F11: 122,
KEY_F12: 123,
KEY_NUM_LOCK: 144,
KEY_SCROLL_LOCK: 145


dojo.event.browser.currentEvent

最近一次的Event,其属性包括:

altKey //检查alt键的状态,当alt键按下时,值为 true
button //检查按下的鼠标键,0 没按键,1 按左键,2 按右键,3 按左右键,4 按中间键,5 按左键和中间键,6 按右键和中间键,7 按所有的键
//这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)
clientX //返回鼠标在窗口客户区域中的X坐标
clientY //返回鼠标在窗口客户区域中的Y坐标
ctrlKey //检查ctrl键的状态,当ctrl键按下时,值为 true
fromElement //检测 onmouseover 和 onmouseout 事件发生时,鼠标所离开的元素
keyCode //检测键盘事件相对应的内码,仅当type为keydown,keyup,keypress时才有效
offsetX //检查相对于触发事件的对象,鼠标位置的水平坐标
offsetY //检查相对于触发事件的对象,鼠标位置的垂直坐标
propertyName //设置或返回元素的变化了的属性的名称,你可以通过使用 onpropertychange 事件,得到 propertyName 的值
screenX //检测鼠标相对于用户屏幕的水平位置
screenY //检测鼠标相对于用户屏幕的垂直位置
shiftKey //检查shift键的状态,当shift键按下时,值为true
srcElement //返回触发事件的元素
srcFilter //返回触发 onfilterchange 事件的滤镜
toElement //检测 onmouseover 和 onmouseout 事件发生时,鼠标所进入的元素
type //返回没有“on”作为前缀的事件名,比如click, mousedown
x //返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象
y //返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象
target //同srcElement
currentTarget
layerX //同offsetX
layerY //同offsetY
pageX //无水平滚动条的情况下与clientX同
pageY //无水平滚动条的情况下与clientY同
relatedTarget // 仅当type为mouseover,mouseout时才有效
keys //与dojo.event.browser.keys相同,仅当type为keydown,keyup,keypress时才有效
charCode //键值,仅当type为keypress时才有效


dojo.event.browser.isEvent

判断指定对象是否为event对象

Usage Example:

dojo.event.browser.isEvent(dojo.event.browser.currentEvent); //当dojo.event.browser.currentEvent不为null时返回true

分享到:
评论

相关推荐

    Dojo实用API大全(中文注解)

    Dojo实用API大全(中文注解) ,详实的代码,精确的中文注解!!

    dojo练习

    【Dojo实用API大全(中文注解).TXT】是一个包含了Dojo常用API的中文文档,对于中文使用者来说非常友好。这些API可能包括了dojo.query(用于查询DOM元素)、dojo.fx(动画效果)、dojo.data(数据存储)等。中文注解...

    DOJO API 中文参考手册,附加注解实例(精心重新排版DOC文档)

    总结来说,Dojo API 中文参考手册是Dojo框架开发者的重要资源,它详尽地介绍了Dojo的架构、包系统、Widget机制以及各种实用包的功能,为开发者提供了全面的指导和支持。无论是初学者还是经验丰富的开发者,都可以...

    Dojo1.7 Api chm

    dojox是Dojo的扩展库,包含了一些非核心但实用的功能,如图形绘制、地理空间处理、高级图表等。开发者可以根据需求选择使用。 十、Dojo的加载优化 Dojo提供了一套优化机制,包括层(Layers)、缓存(Caching)和...

    DOJO—API—中文参考手册

    4. **应用程序支持库**:这是开发者日常工作中最频繁接触的层次,包含了大量实用的API,例如IO包用于执行Ajax请求等功能。 5. **Widget系统**:位于整个架构的最顶层,由大量的Widget组成,用于构建丰富的用户界面。...

    Dojo使用API

    dojo实用Dojo_API大全开发学习文档

    dojo离线api

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括Ajax、DOM操作、事件处理、动画...记得,离线API的实用性在于它允许你在任何时间、任何地点深入研究Dojo的功能,而无需依赖互联网连接。

    DOJO-API中文参考手册附加注解实例

    本文将基于“DOJO-API中文参考手册附加注解实例”的内容,深度剖析Dojo框架的体系架构、核心功能及常用包介绍,以期为开发者提供全面的指导和实用的参考资料。 #### Dojo体系架构概述 Dojo的体系架构呈现出清晰的...

    DOJO_API_中文参考手册 附加注释实例

    Dojo API中文参考手册是一个面向初学者的指导性文件,它详细介绍了Dojo框架的体系结构、常用包及功能,并通过附加注释实例帮助开发者理解和使用Dojo。以下是根据给定内容整理的知识点: 1. Dojo体系架构分层: - ...

    dojo api最好资料

    应用程序支持库包含了大量实用API,例如网络请求、动画效果等。这一层是开发人员最频繁使用的部分。例如,`dojo.io`包提供了多种I/O传输方式的支持,使得执行Ajax请求变得简单高效。 #### Widget系统 Dojo的最高层...

    dojo实战+实用例子

    Dojo的DOM操作库提供了一组高效且易于使用的API,如`dojo/query`用于选择元素,`dojo/dom`用于获取和设置元素属性,`dojo/dom-geometry`用于获取元素的位置和尺寸,以及`dojo/dom-class`和`dojo/dom-style`用于处理...

    dojo工具包及API

    10. **工具集和实用程序**:Dojo包含许多实用工具,如字符串处理、日期时间操作、数组操作等,为日常开发提供便利。 在压缩包中的`dojo1.8.chm`文档中,你可以找到Dojo 1.8版本的详细API参考。CHM(Compiled ...

    Dojo 基础1-语言及浏览器实用程序

    在"基础1-语言及浏览器实用程序"这一部分,我们将探讨Dojo的一些核心特性,包括DOM节点操作、类型检查、字符串工具、数组处理以及模块管理。 1. **Dojo查找DOM节点**: `dojo.byId()`函数是Dojo提供的一个方便的...

    dojo-release-1.0.2

    8. **工具集**:还包括日期和时间处理、字符串格式化、数组操作等一系列实用工具函数,如`dojo/date`、`dojo/regexp`和`dojo/_base/array`。 在"dojo-release-1.0.2"这个特定版本中,可能包含以下内容: - **源...

    dojo权威入门教程

    Dojo Toolkit是一个强大的JavaScript框架,它提供了丰富的组件、工具和API,帮助开发者高效地构建高性能、跨平台的Web应用。本教程旨在通过详细讲解和实例演示,使读者能够快速上手并熟练掌握Dojo的核心概念和实用...

    dojo开发文档

    9. **dojo/json**:`dojo/json`模块用于JSON数据的序列化和反序列化,对于前后端交互非常实用。 10. **dojo/uacss和dojo/dom-class**:`dojo/uacss`根据用户代理(User Agent)字符串自动应用CSS类,帮助处理浏览器...

    dojo对DOM树的操作相关api pdf格式

    `dojo.body()`函数是Dojo框架中一个非常实用的工具,它简化了对`&lt;body&gt;`元素的访问和操作,提高了代码的可读性和健壮性。对于Web开发者而言,熟练掌握并运用`dojo.body()`以及其他Dojo DOM操作API,将极大提升开发...

    dojo1.1 javascript框架

    9. **工具类和实用函数**:`dojo/_base`模块包含了很多通用的工具函数,如数组操作、字符串处理、定时器等,这些都是开发过程中经常会用到的功能。 10. **Dojo构建系统**:Dojo还提供了一个强大的构建工具,允许...

Global site tag (gtag.js) - Google Analytics