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 instanceof,typeof的区别
Mar 24 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
B/S模式项目中常用的javascript汇总
Dec 17 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
JavaScript导出Excel实例详解
Nov 25 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
es6数值的扩展方法
Mar 11 Javascript
微信小程序实现图片上传
May 23 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
vue实现一拉到底的滑动验证
Jul 25 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
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
php把session写入数据库示例
2014/02/26 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
python进程与线程小结实例分析
2018/11/11 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
贸易经济专业自荐书
2014/06/29 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
出租房屋协议书
2014/09/14 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
HTML基本元素标签介绍
2022/02/28 HTML / CSS
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL