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 相关文章推荐
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
JavaScript传递变量: 值传递?引用传递?
Feb 22 Javascript
使用javascript过滤html的字符串(注释标记法)
Jul 08 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
跨域请求的完美解决方法(JSONP, CORS)
Jun 12 Javascript
js获取元素下的第一级子元素的方法(推荐)
Mar 05 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
JS获取指定月份的天数两种实现方法
Jun 22 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
WEB前端性能优化的7大手段详解
Feb 04 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 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实现aes加密类分享
2014/02/16 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
三年级评语大全
2014/04/23 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
英语教师个人总结
2015/02/09 职场文书
护士年终个人总结
2015/02/13 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript