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 相关文章推荐
jquery获取input的value问题说明
Aug 19 Javascript
原生javascript实现图片轮播效果代码
Sep 03 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
vue mint-ui学习笔记之picker的使用
Oct 11 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
react-router-dom 嵌套路由的实现
May 02 Javascript
三步搞定:Vue.js调用Android原生操作
Sep 07 Javascript
element多个表单校验的实现
May 27 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
模拟flock实现文件锁定
2007/02/14 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php接口隔离原则实例分析
2019/11/11 PHP
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
python爬虫框架talonspider简单介绍
2017/06/09 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
Python中print函数简单使用总结
2019/08/05 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
人事文员岗位职责
2014/02/16 职场文书
2014全国两会心得体会
2014/03/17 职场文书
敬老院活动总结
2014/04/28 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
2014年化验室工作总结
2014/11/21 职场文书