今天在开发的过程中遇到了一个有趣的多节点操作的状况,拿出来和大家分享一下,同时比较一下Mootools和jquery的差异
因为之前用jquery,现在转到mootools之后惯性思维一直不好改,结果今天发现了这个问题,如果把Mootools的语句用jquery的 写法来做是无论如何都没办法达到预期效果的,所以必须要把多个节点使用Array的each方法给拆解出来才可以实现.由此可见mootools更接近 js原型开发.
我们看一下下边的代码:
//Mootools的做法:
function Global_HidShow_Other(i){
i=$(i);
if(i.checked){
$sel=$('srh1').getElements('li.float input');
Array.each($sel,function($sel_,index){
$sel_.checked=false;
$sel_.disabled=true;
});
}
}
//Jquery的做法
$(document).ready(function(){
$sel=$('#srh1 li.float input');
$sel.checked=false;//我记得以前在写jquery的时候直接操作checked和disabled似乎是有问题的,时间很久了,记不太清了.
$sel.disabled=true;
});
其实这应该算是很基础的东西了,只不过应该归功于jquery惯坏了我的习惯罢了.
Global_HidShow_Other这个函数我并没有绑定事件,而是直接写入到dom节点上了<font onclick="Global_HidShow_Other(this)">,这样就不需要每次打开页面的时候不管是否能用得到此功能都要绑定事件,资源能节省就节省吧.
我在调用的时候传递了this进去,为了兼容IE,所以我在使用i参数之前先i=$(i);以免IE报错.
这样的用法是不是和js原型开发非常相似.似乎一切都归于本源了.