效果:按住shift在区域内连选-------按照shift键进行勾选时候,如果两次勾选之间有未勾选的复选框,自动进行勾选。
主要思想:获取指定区域内的所有checkbox,在勾选时监视是否按住了shift,如果按住,两次勾选之间的复选框分别设置成勾选状态。
目前测试了ie6、ie7、firefox,其它浏览器未做测试。用javascript完成。
javascript部分:
javascript代码
调用方式为:
Html部分
主要思想:获取指定区域内的所有checkbox,在勾选时监视是否按住了shift,如果按住,两次勾选之间的复选框分别设置成勾选状态。
目前测试了ie6、ie7、firefox,其它浏览器未做测试。用javascript完成。
javascript部分:
new SectionCheckBoxSelector("chkContainer"); // chkContainer为checkbox所在容器的id
// new SectionCheckBoxSelector(chkContainer); // chkContainer为checkbox所在的容器
html部分为:// new SectionCheckBoxSelector(chkContainer); // chkContainer为checkbox所在的容器
缺点:
设计的较差,SectionSelector暴露了太多给checkbox操作,整个对象附加到checkbox上。以下划线命名的部分应该做信息隐藏,而不是暴露,但能力有限,不知该如何做信息隐藏。
限制:
当前已处理onclick事件,checkbox的onclick事件不受影响。onmousedown和onmouseover未做处理,如果checkbox有这两个事件,会被劫持掉。
ps:附上源码,请大家指正。SectionSelector源码下载
源码做了修改,使用了事件注册机制,解决了内存泄露问题