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 学习笔记之一jQuery写法图片等比缩放以及预加载
Jun 28 Javascript
Json和Jsonp理论实例代码详解
Nov 15 Javascript
javascript实现手机震动API代码
Aug 05 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
Aug 19 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
Sep 11 Javascript
js实现下拉框二级联动
Dec 04 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
Vue数字输入框组件示例代码详解
Jan 15 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 shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
javascript 主动派发事件总结
2011/08/09 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
详解jQuery中的事件
2016/12/14 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python模拟表单提交登录图书馆
2018/04/27 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
详解python做UI界面的方法
2019/02/27 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
Python json格式化打印实现过程解析
2020/07/21 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
关于打架的检讨书
2014/01/17 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
优秀班组长事迹
2014/05/31 职场文书
质量在我心中演讲稿
2014/09/02 职场文书