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 实现Json查询的方法实例
Apr 12 Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
基于javascript实现随机颜色变化效果
Jan 14 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
jquery中用jsonp实现搜索框功能
Oct 18 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
Sep 27 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
Python MD5文件生成码
2009/01/12 Python
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
十岁生日同学答谢词
2014/01/19 职场文书
初一科学教学反思
2014/01/27 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
绿色出行口号
2014/06/18 职场文书
经典团队口号大全
2014/06/21 职场文书
爱国主义电影观后感
2015/06/18 职场文书
严以律己学习心得体会
2016/01/13 职场文书