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 继承实例分析
Nov 04 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
Apr 20 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 Javascript
详解webpack分离css单独打包
Jun 21 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
Oct 17 Javascript
vue脚手架中配置Sass的方法
Jan 04 Javascript
详解webpack+ES6+Sass搭建多页面应用
Nov 05 Javascript
vue 详情跳转至列表页实现列表页缓存
Mar 27 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 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 4.2书写安全的脚本
2006/10/09 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
Postman参数化实现过程及原理解析
2020/08/13 Javascript
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
Django返回HTML文件的实现方法
2020/09/17 Python
如何通过python检查文件是否被占用
2020/12/18 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
银行会计职员个人的自我评价
2013/09/29 职场文书
文明倡议书范文
2014/04/15 职场文书
党校毕业个人总结
2015/02/28 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
小学远程教育工作总结
2015/08/13 职场文书
党校团干班培训心得体会
2016/01/06 职场文书