手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >推荐dojo学习笔记
推荐dojo学习笔记
摘要:在引用dojo.js前,最好声明djConfig对象,以便在加载dojo.js时能够取得所设置的值,虽然在0.3版本以后dojo支持在加载后...

在引用dojo.js前,最好声明djConfig对象,以便在加载dojo.js时能够取得所设置的值,虽然在0.3版本以后dojo支持在加载后设置,但是强烈建议你把声明djConfig的代码作为第一段script:

一个完整的djConfig对象定义如下(值均为dojo的默认值)

js代码

vardjConfig={

isDebug:false,

debugContainerId:"",

bindEncoding:"",

allowQueryConfig:false,

baseScriptUri:"",

parseWidgets:true

searchIds:[],

baseRelativePath:"",

libraryScriptUri:"",

iePreventClobber:false,

ieClobberMinimal:true,

preventBackButtonFix:true,

debugContainerId同样也是与调试有关的,如果不指定的话,调试信息将会直接利用document.write输出,这样可能会破坏页面的整体布局,所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器

allowQueryConfig,这个属性指明dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性,比如:http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug

baseScriptUri,一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<scriptsrc="../dojo/dojo.js"type="text/javascript"></script>,自动获取的值便是../dojo/

ps:如果你有多个工程需要同时引用dojo.js的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对路径就可以了

parseWidgets,这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有使用任何Widget,建议设置为false以加快dojo的加载速度

searchIds,这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析

还有一个bindEncoding,是用来设置默认的bind请求的编码方式。

dojo.raise抛出一个异常

dojo.errorToString将异常转换为字符串

js代码

try{

dojo.raise("打印失败",newError("文件不存在"));

}catch(e)

{

alert(dojo.errorToString(e));

}

isDebug是一个很有用的属性,如果设置为真,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为false。

1计算HTML中一个块的size

js代码

dojo.style.getOuterWidth/dojo.style.getOuterHeight

dojo.style.getInnerWidth/dojo.style.getInnerHeight

2修改CSS

js代码

dojo.html.addClass(node,className)

dojo.html.prependClass(node,className)

dojo.html.removeClass(node,className)

dojo.html.replaceClass(node,className,oldClassName)

3动画

js代码

fadeIn,fadeShow,fadeOut,fadeHide,

wipeIn,wipeOut

explode,implode

highlight,unhighlight

举例:

functionwipeOut(elId){

dojo.lfx.wipeOut(elId,300).play();

}

functionwipeIn(elId){

dojo.lfx.wipeIn(elId,300).play();

}

functionfadeOut(elId){

dojo.lfx.html.fadeOut(elId,300).play();

}

functionfadeIn(elId){

dojo.lfx.html.fadeIn(elId,300).play();

}

functionopacity(elId){

dojo.html.setOpacity(elId,0.5);

}

functionopacityApp(){

$("#opacity").click(function(){

opacity('fadeElm');

});

}

functionfadeInApp(){

$("#fadein").click(function(){

fadeIn('fadeElm');

});

}dojo.lang模块:

dojo.lang.mixin将一个对象的方法和属性增加到另一个对象上:

js代码

vars1={name:"TestObj",test1:function(){alert("thisistest1!");}}

vars2={value:1000,test2:function(){alert("thisistest2!");}}

vard={};

dojo.lang.mixin(d,s1,s2);//执行后d就具备了s1和s2的所有属性和方法d.test1();

dojo.lang.extend为指定类的原型扩展方法与属性:

js代码

TestClass=function(){};

dojo.lang.extend(TestClass,{name:"demo",test:function(){alert("Test!");}});

varo=newTestClass();

//TestClass本来是没有test方法的,但是extend以后就有test方法了o.test();

dojo.lang.find=dojo.lang.indexOf查找指定对象在指定数组中的位置:

js代码

vararr=[1,2,3,3,2,1];

dojo.lang.find(arr,2);//willreturn1

dojo.lang.extrasdojo.lang.setTimeout延迟指定时间后执行指定方法:

js代码

functiononTime(msg){dojo.debug(msg)}

dojo.lang.setTimeout(onTime,1000,"test");//1秒后会输出调试信息"test"

DOM操作

js代码

dojo.dom.isNode

dojo.dom.getTagName

dojo.dom.firstElement

dojo.dom.lastElement

dojo.dom.nextElement

dojo.dom.prevElement

dojo.dom.moveChildren(srcNode,destNode,trim)

dojo.dom.copyChildren(srcNode,destNode,trim)

dojo.dom.removeChildren(node)

dojo.dom.replaceChildren(node,newChild)

dojo.dom.removeNode(node)

dojo.dom.getAncestors

dojo.dom.getAncestorsByTag

dojo.dom.innerXML

dojo.dom.createDocumentFromText

dojo.dom.prependChild

dojo.dom.insertAfter

dojo.dom.insertAtPosition

dojo.dom.textContent

先介绍这么多,祝大家周末愉快!

【推荐dojo学习笔记】相关文章:

JavaScript中reduce()方法的使用详解

javascript结合Flexbox简单实现滑动拼图游戏

让插入到 innerHTML 中的 script 跑起来的实现代码

安装使用Mongoose配合Node.js操作MongoDB的基础教程

美化下拉列表

精彩图片推荐 渐隐渐现

JavaScript操作XML文件之XML读取方法

JS中Eval解析JSON字符串的一个小问题

DEFER怎么用?

JavaScript使用技巧精选

精品推荐
分类导航