javascript实现TreeView 无刷新展开的实例代码


Posted in Javascript onJuly 13, 2013
function public_GetParentByTagName(element, tagName)  
{ 
    var parent = element.parentNode; 
    var upperTagName = tagName.toUpperCase(); 
    //如果这个元素还不是想要的tag就继续上溯 
    while (parent && (parent.tagName.toUpperCase() != upperTagName))  
    { 
        parent = parent.parentNode ? parent.parentNode : parent.parentElement; 
    } 
    return parent; 
} 
//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问 
function setParentChecked(objNode) 
{  
    var objParentDiv = public_GetParentByTagName(objNode,"div"); 
    if(objParentDiv==null || objParentDiv == "undefined") 
    { 
        return; 
    } 
    var objID = objParentDiv.getAttribute("ID"); 
    objID = objID.substring(0,objID.indexOf("Nodes")); 
    objID = objID+"CheckBox"; 
    var objParentCheckBox = document.getElementById(objID); 
    if(objParentCheckBox==null || objParentCheckBox == "undefined") 
    { 
        return; 
    }  
    if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox") 
    return;  
    objParentCheckBox.checked = true; 
    setParentChecked(objParentCheckBox); 
} 
//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问 
function setChildUnChecked(divID) 
{  
    var objchild = divID.children; 
    var count = objchild.length;  
    for(var i=0;i<objchild.length;i++) 
    { 
        var tempObj = objchild[i]; 
        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox") 
        { 
            tempObj.checked = false; 
        } 
        setChildUnChecked(tempObj);  
    } 
} 
//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问 
function setChildChecked(divID) 
{  
    var objchild = divID.children; 
    var count = objchild.length;  
    for(var i=0;i<objchild.length;i++) 
    { 
        var tempObj = objchild[i]; 
        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox") 
        { 
            tempObj.checked = true; 
        } 
        setChildChecked(tempObj);  
    } 
} 
//触发事件 
function CheckEvent() 
{ 
    var objNode = event.srcElement;  
    if(objNode.tagName!="INPUT" || objNode.type!="checkbox") 
    return; 
    if(objNode.checked==true) 
    { 
        setParentChecked(objNode); 
        var objID = objNode.getAttribute("ID"); 
        var objID = objID.substring(0,objID.indexOf("CheckBox"));  
        var objParentDiv = document.getElementById(objID+"Nodes"); 
        if(objParentDiv==null || objParentDiv == "undefined") 
        { 
            return; 
        }  
        setChildChecked(objParentDiv); 
    } 
    else 
    { 
        var objID = objNode.getAttribute("ID"); 
        var objID = objID.substring(0,objID.indexOf("CheckBox"));  
        var objParentDiv = document.getElementById(objID+"Nodes"); 
        if(objParentDiv==null || objParentDiv == "undefined") 
        { 
            return; 
        }  
        setChildUnChecked(objParentDiv); 
    } 
}

服务端控件
this.tvPrivilege.Attributes.Add("OnClick", "CheckEvent()");  
Javascript 相关文章推荐
javascript编程起步(第五课)
Feb 27 Javascript
获取当前网页document.url location.href区别总结
May 10 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
JQuery 在线引用及测试引用是否成功
Jun 24 Javascript
JS中substring与substr的用法
Nov 16 Javascript
js脚本编写简单刷票投票系统
Jun 27 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
Apr 08 Javascript
js回溯法计算最佳旅行线路代码实例
Sep 11 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
Jquery封装tab自动切换效果的具体实现
Jul 13 #Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 #Javascript
js confirm()方法的使用方法实例
Jul 13 #Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 #Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
Jul 13 #Javascript
浅析ajax请求json数据并用js解析(示例分析)
Jul 13 #Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 #Javascript
You might like
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
JavaScript中的History历史对象
2008/01/16 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
什么是python的自省
2020/06/21 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
化学教师自荐信范文
2013/12/28 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
图解上海144收音机
2021/04/22 无线电
jquery插件实现悬浮的菜单
2021/04/24 jQuery
python读取mat文件生成h5文件的实现
2022/07/15 Python
MySQL新手入门进阶语句汇总
2022/09/23 MySQL