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 相关文章推荐
Autocomplete Textbox Example javascript实现自动完成成功
Aug 17 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
用apply让javascript函数仅执行一次的代码
Jun 27 Javascript
javascript天然的迭代器
Oct 29 Javascript
jquery复选框checkbox实现删除前判断
Apr 20 Javascript
jquery+json实现动态商品内容展示的方法
Jan 14 Javascript
深入理解js中this的用法
May 28 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
JavaScript多种页面刷新方法小结
Apr 04 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 Javascript
vant picker+popup 自定义三级联动案例
Nov 04 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
PHP类的反射用法实例
2014/11/03 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Python requests获取网页常用方法解析
2020/02/20 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
SQL数据库笔试题
2016/03/08 面试题
几个Shell Script面试题
2014/04/18 面试题
英文版网络工程师求职信
2013/10/28 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
大学新闻系自荐书
2014/05/31 职场文书
学校宣传标语
2014/06/18 职场文书
软环境建设心得体会
2014/09/09 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
python简单验证码识别的实现过程
2021/06/20 Python
nginx服务器的下载安装与使用详解
2021/08/02 Servers
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技