花了1天时间,边看jQuery的例子边熟悉它的API,总算把项目中的权限控制模块做好了。以前面对这么一大堆checkbox,在写javascript的时候总要考虑下页面的组织,一般都是通过它们不同的name和id属性来加以控制的。而用jQuery就没有那么多限制了,它的选择器简直就是一条鱼,可以任意在水中游荡,由这个input游到那个td,再迅速游到其他毫不相干的标签,充分展现了代码与页面分离的优势,只要稍稍加几个hidden的input就可以把整个页面紧凑地组织成一体,呵呵,当然你要有那种逻辑思维。通过选择器这条小鱼,还可以让它引出很多线索,进行统一的控制和绑定——方法啦,属性啦,等等,当然还封装了这些线索的遍历方法,设置了相当方便的回调函数。
想当初学习javascript的痛苦,和现在用jQuery的轻松加愉快,其便利之处是不言而喻的。而且写出来的代码一致性很好(当然看个人风格),可读性也很棒。下面是我用jQuery框架和原始javascript写的功能相同的模块,大家可以比较一下。
这是jQuery写的
下面是javascript写的
function changecheck(ev)
{
var chkid = ev.srcElement.name;
changecheckbyid(chkid);
}
function changecheckbyid(chkid)
{
var temp;
var chkname;
var chkcontrol;
var chked = document.all(chkid).checked;
if(chkid.length>4)
return;
for(var i= 1;i<99;i++)
{
if(i<10)
temp = "0"+i;
else
temp = i;
chkname = chkid+temp;
chkcontrol = null;
chkcontrol = document.all(chkname);
if(chkcontrol==null)
break;
else
{
chkcontrol.checked = chked;
changecheckbyid(chkcontrol.name);
}
其实看着上诉代码风格的变换,也体现了web发展的缩影,不知你们有没有感觉到呢,呵呵
想当初学习javascript的痛苦,和现在用jQuery的轻松加愉快,其便利之处是不言而喻的。而且写出来的代码一致性很好(当然看个人风格),可读性也很棒。下面是我用jQuery框架和原始javascript写的功能相同的模块,大家可以比较一下。
这是jQuery写的
$('.menuParent').click(function(){
var index = $(this).next().attr("value");
var rows = $(this).parent().attr("rowspan");
var chk = $(this).attr("checked");
var rowscount = 0;
$('.rows').lt(index).each(function(){
rowscount = rowscount + $(this).attr("value")*6;
});
if(chk==null)
$(':checkbox').not('.menuParent').gt(rowscount-1).lt(rows*6).removeAttr("checked");
else
$(':checkbox').not('.menuParent').gt(rowscount-1).lt(rows*6).attr("checked","checked");
});
var index = $(this).next().attr("value");
var rows = $(this).parent().attr("rowspan");
var chk = $(this).attr("checked");
var rowscount = 0;
$('.rows').lt(index).each(function(){
rowscount = rowscount + $(this).attr("value")*6;
});
if(chk==null)
$(':checkbox').not('.menuParent').gt(rowscount-1).lt(rows*6).removeAttr("checked");
else
$(':checkbox').not('.menuParent').gt(rowscount-1).lt(rows*6).attr("checked","checked");
});
下面是javascript写的
function changecheck(ev)
{
var chkid = ev.srcElement.name;
changecheckbyid(chkid);
}
function changecheckbyid(chkid)
{
var temp;
var chkname;
var chkcontrol;
var chked = document.all(chkid).checked;
if(chkid.length>4)
return;
for(var i= 1;i<99;i++)
{
if(i<10)
temp = "0"+i;
else
temp = i;
chkname = chkid+temp;
chkcontrol = null;
chkcontrol = document.all(chkname);
if(chkcontrol==null)
break;
else
{
chkcontrol.checked = chked;
changecheckbyid(chkcontrol.name);
}
其实看着上诉代码风格的变换,也体现了web发展的缩影,不知你们有没有感觉到呢,呵呵