能坚持从dojo学习系列一 一直看到今天的四的童鞋是越来越少了,第一篇dojo学习一 之Tab选项卡接触访问次数:1160次,第二篇dojo学习二 ajax异步请求之绑定列表:1055次,第三篇dojo学习三 grid表格扩展学习:786次,可能是我的语言不够华丽,无法吸引大家的眼球,也无法让大家产生对dojo的强烈渴望,我承认我有罪,我对不起大家,对不起D。作为一个资深的前端爱好者,我觉得学习Dojo会让你更了解js的一些其他特性,如果你只是想对dom的简单操作,那么你还是继续你的jquery吧!
说到dom操作,dojo也有在基类中集成一些常用的选择器,如:
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 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),工作忙,没时间写了,就烂尾吧!