dojo学习四 dojo常用方法与扩展学习
能坚持从dojo学习系列一 一直看到今天的四的童鞋是越来越少了,第一篇dojo学习一 之Tab选项卡接触访问次数:1160次,第二篇dojo学习二 ajax异步请求之绑定列表:1055次,第三篇dojo学习三 grid表格扩展学习:786次,可能是我的语言不够华丽,无法吸引大家的眼球,也无法让大家产生对dojo的强烈渴望,我承认我有罪,我对不起大家,对不起D。作为一个资深的前端爱好者,我觉得学习Dojo会让你更了解js的一些其他特性,如果你只是想对dom的简单操作,那么你还是继续你的jquery吧!
说到dom操作,dojo也有在基类中集成一些常用的选择器,如:
1 dojo.byId("domId")//返回id是domId的节点
2 dojo.query(".className")//这里的参数是css选择器,和jquery一样
3 dojo.style(node, style, value)//改变节点样式.
2 dojo.query(".className")//这里的参数是css选择器,和jquery一样
3 dojo.style(node, style, value)//改变节点样式.
.........
基本上jquery上有的,它也会有,jquery没有的,它也有,比如dojo.hitch(scope, method),dojo.toJson,dojo.some,dojo.indexOf等,jquery1.6压缩后只有30几KB,dojo基类压缩后也只有30几KB,所以没有什么理由让你歧视dojo。至于你学不学,反正我是学了的。更详细的API说明请看dojo API官网 .
刚说到dojo.hitch(scope,method)方法,它的作用类似于o.apply(f,args),我的理解是,把方法引用到对象,改变当前工作环境。如以下代码:
function init(){
function showData(){
var x=this.getData();
dojo.byId("showData").innerHTML=x;
}
var dataScr1={
value:0,
getData:function(){
return this.value++;
}
};
var dataScr2={
value:0,
getData:function(){
return (this.value+=5);
}
};
dojo.byId("f1").onclick=dojo.hitch(dataScr1,showData);
dojo.byId("f2").onclick=dojo.hitch(dataScr2,showData);
}
dojo.addOnLoad(init);
function showData(){
var x=this.getData();
dojo.byId("showData").innerHTML=x;
}
var dataScr1={
value:0,
getData:function(){
return this.value++;
}
};
var dataScr2={
value:0,
getData:function(){
return (this.value+=5);
}
};
dojo.byId("f1").onclick=dojo.hitch(dataScr1,showData);
dojo.byId("f2").onclick=dojo.hitch(dataScr2,showData);
}
dojo.addOnLoad(init);
这里,showData里的this指针,会根据hitch的第一个参数来改变工作环境。相当于showData.apply(dataScr1),工作忙,没时间写了,就烂尾吧!