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与框架页的操作代码
Jan 17 Javascript
更快的异步执行(setTimeout多浏览器)
Aug 12 Javascript
jQuery获取iframe的document对象的方法
Oct 10 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
Jan 21 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
May 16 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
Apr 18 Javascript
Express框架之connect-flash详解
May 31 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
Sep 29 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
php解析xml方法实例详解
2015/05/12 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
jQuery JSON的解析方式分享
2011/04/05 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
vue--vuex详解
2019/04/15 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
Python实现DDos攻击实例详解
2019/02/02 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
电气自动化求职信
2014/06/24 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
音乐课外活动总结
2015/05/09 职场文书