Enjoy yourself,and don't care about others' thinking!
----TiGERTiAN
BlogJava
首页
新随笔
联系
聚合
管理
随笔-348 评论-598 文章-0 trackbacks-0
用jQuery给页面中树形的Checkbox默认加上父子节点相关操作(JSF的Richfaces专用)
jQuery.noConflict();
//
与JSF搭配需要这句话,不然会有冲突
jQuery(document).ready(
function
()
{
//
Add click event listener to each checkbox in the tree page
//
Note! Using this simple selector assumes that there are no other
//
checkboxes on the page, if there are other checkboxes then
//
selector should be changed
jQuery(
"
:checkbox
"
).click(
function
()
{
updateChildren(
this
);
updateParent(
this
);
}
);
}
);
</
script
>
<
script type
=
"
text/javascript
"
>
function
updateChildren(currentCheckBox)
{
//
Get state of current checkbox (true or false)
var
state
=
currentCheckBox.checked;
//
Get parent TABLE, where current checkbox is places
var
parentTables
=
jQuery(currentCheckBox).parents(
"
table
"
);
var
parentTable
=
parentTables[
0
];
//
Get DIV where child nodes with checkboxes are situated
//
See http://docs.jquery.com/Traversing/ to get better uderstanding of
//
parents() and next()
var
childDivs
=
jQuery(parentTable).next(
"
div
"
);
if
( childDivs.length
>
0
)
{
var
childDiv
=
childDivs[
0
];
//
Iterate over all child nodes checkboxes and set same state as the
//
current checkbox state
jQuery(childDiv).contents().find(
"
:checkbox
"
).each(
function
()
{
this
.checked
=
state;
}
);
}
}
//
更新父节点的方法,如果子节点全部选中则父节点选中,如果子节点中有一个未选中,则父节点也未选中
function
updateParent(currentCheckbox)
{
var
parentDivs
=
jQuery(currentCheckbox).parents(
"
div
"
);
var
parentDiv
=
parentDivs[
0
];
var
hasSelected
=
false
;
jQuery(parentDiv).contents().find(
"
:checkbox
"
).each(
function
()
{
if
(
this
.checked)
{
hasSelected
=
true
;
}else{
hasSelected =
false
;
return;
}
}
);
var
parentTables
=
jQuery(parentDiv).prev(
"
table
"
);
if
(parentTables.length
>
0
)
{
var
parentTable
=
parentTables[
0
];
var
parentCheckboxes
=
jQuery(parentTable).find(
"
:checkbox
"
);
var
parentCheckbox
=
parentCheckboxes[
0
];
parentCheckbox.checked
=
hasSelected ;
}
}
注意引入jQuery包。
此js代码加到页面中,将会给页面中的树形菜单的Checkbox默认加上一些功能:当选择父节点时全选子节点;当子节点全选时,父节点也会被自动选择上。同时不会影响其他Checkbox。
---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2009-11-12 08:46
TiGERTiAN
阅读(3420)
评论(4)
编辑
收藏
所属分类:
VB/ASP
、
JSF
评论:
#
re: 用jQuery给页面中树形的Checkbox默认加上父子节点相关操作 2009-11-12 14:30 |
凡客诚品优惠券
不错,收藏
回复
更多评论
#
re: 用jQuery给页面中树形的Checkbox默认加上父子节点相关操作 2009-11-12 18:49 |
BeanSoft
收藏了!
回复
更多评论
#
re: 用jQuery给页面中树形的Checkbox默认加上父子节点相关操作 2009-11-12 19:25 |
jackyrong
能否提供完整代码下载呢
回复
更多评论
#
re: 用jQuery给页面中树形的Checkbox默认加上父子节点相关操作
2009-11-12 19:45 |
TiGERTiAN
@jackyrong
这个就是完整的代码啊
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
用jQuery给页面中树形的Checkbox默认加上父子节点相关操作(JSF的Richfaces专用)
Oracle数据迁移到SQL Server小结
asp导出excel用到的类
VML 3D报表修正版
最近在帮学校做网站
ASP中遇到的问题
ASP防注的最佳的方法(我认为的)
专注移动开发--Windows Mobile, Android, iPhone, J2ME, BlackBerry, Symbian, Windows Phone
慢慢混,慢慢学
<
2009年11月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(40)
给我留言
查看公开留言
查看私人留言
随笔分类
(402)
Ajax(4)
Android(58)
BlackBerry(8)
C/C++(3)
Design Patterns(6)
Discuz!NT(1)
DotNet(26)
Feeling(61)
Flex(4)
Grails(2)
Hibernate(1)
iPhone(5)
J2ME(11)
Java(99)
JSF(26)
Linux(18)
MapXtreme(9)
Objective c(1)
Oracle(6)
Other technique(20)
Perl/Python(1)
Roller (10)
Symbian
VB/ASP(7)
WebWork(3)
Windows Mobile(10)
WindowsPhone(2)
随笔档案
(306)
2017年5月 (1)
2016年8月 (1)
2015年11月 (1)
2015年2月 (1)
2015年1月 (1)
2013年12月 (1)
2013年5月 (1)
2013年4月 (1)
2012年9月 (1)
2012年7月 (1)
2012年6月 (1)
2012年5月 (2)
2012年4月 (1)
2012年2月 (2)
2012年1月 (1)
2011年11月 (2)
2011年10月 (1)
2011年9月 (1)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年3月 (3)
2011年2月 (4)
2011年1月 (15)
2010年12月 (1)
2010年11月 (2)
2010年10月 (6)
2010年9月 (12)
2010年8月 (3)
2010年7月 (2)
2010年6月 (6)
2010年5月 (14)
2010年4月 (7)
2010年3月 (16)
2010年2月 (10)
2010年1月 (14)
2009年12月 (12)
2009年11月 (5)
2009年10月 (3)
2009年9月 (2)
2009年8月 (3)
2009年6月 (1)
2009年4月 (2)
2009年3月 (2)
2009年1月 (3)
2008年12月 (3)
2008年11月 (20)
2008年10月 (17)
2008年9月 (3)
2008年4月 (1)
2008年3月 (2)
2008年2月 (8)
2008年1月 (1)
2007年11月 (2)
2007年10月 (13)
2007年9月 (3)
2007年7月 (4)
2007年6月 (2)
2007年5月 (12)
2007年4月 (15)
2007年3月 (6)
2007年2月 (2)
2007年1月 (1)
2006年7月 (2)
2006年4月 (1)
2006年1月 (1)
2005年11月 (1)
2005年8月 (1)
2005年7月 (9)
相册
我正在读的书
我的好友们
JavaBy
有心就有翼 有梦就会飞--MC
搜索
积分与排名
积分 - 807422
排名 - 50
最新评论
1. re: Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用[未登录]
哈哈~
--a
2. re: onInterceptTouchEvent和onTouchEvent调用时序
@米其林的微笑
在你的子view重写ontouchevent方法就行
--kxt
3. re: Android弹出拨号界面和拨打电话实现
这找不到call是怎么回事?现在有别的方法实现这个功能吗?
--firetomato
4. re: Android弹出拨号界面和拨打电话实现
请我dial和call方法有什么区别么?
--jaime
5. re: Android文字跑马灯控件(文本自动滚动控件)
如何让滚动的速度快一点啊??
--学鸟
阅读排行榜
1. onInterceptTouchEvent和onTouchEvent调用时序(38686)
2. Android的Intent和IntentFilter应用说明一例(37695)
3. Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用(34313)
4. Android中短信拦截解决方案(31072)
5. Android中ContentProvider和ContentResolver使用入门(21418)
评论排行榜
1. 【JSF】Richfaces复选框树(Checkbox tree)的权限分配的解决方案(69)
2. JSF中动态生成HtmlMessage控件出错的解决办法(38)
3. hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法(27)
4. 这两天用Flex写了一个多媒体播放器(19)
5. Android文字跑马灯控件(文本自动滚动控件)(17)