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 相关文章推荐
[对联广告] JS脚本类
Aug 27 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
Mar 24 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
JQuery自动触发事件的方法
Jun 13 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
Feb 01 Javascript
创建echart多个联动的示例代码
Nov 23 Javascript
深入理解Node内建模块和对象
Mar 12 Javascript
浅谈js中的bind
Mar 18 Javascript
JS回调函数 callback的理解与使用案例分析
Sep 09 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
原生js中ajax访问的实例详解
2017/09/19 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中for循环和while循环的基本使用方法
2015/08/21 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python多维数组切片方法
2018/04/13 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
赢在执行观后感
2015/06/16 职场文书
GO中sync包自由控制并发示例详解
2022/08/05 Golang