nodetree中 前面复选框禁用插件
nodetree中 前面复选框的去掉插件
extendTreeCheck.js
/**
* tree方法扩展
* 作者:小雪转中雪
*/
$.extend($.fn.tree.methods, {
/**
* 激活复选框
* @param {Object} jq
* @param {Object} target
*/
enableCheck : function(jq, target) {
return jq.each(function(){
var realTarget;
if(typeof target == "string" || typeof target == "number"){
realTarget = $(this).tree("find",target).target;
}else{
realTarget = target;
}
var ckSpan = $(realTarget).find(">span.tree-checkbox");
if(ckSpan.hasClass('tree-checkbox-disabled0')){
ckSpan.removeClass('tree-checkbox-disabled0');
}else if(ckSpan.hasClass('tree-checkbox-disabled1')){
ckSpan.removeClass('tree-checkbox-disabled1');
}else if(ckSpan.hasClass('tree-checkbox-disabled2')){
ckSpan.removeClass('tree-checkbox-disabled2');
}
});
},
/**
* 禁用复选框
* @param {Object} jq
* @param {Object} target
*/
disableCheck : function(jq, target) {
return jq.each(function() {
var realTarget;
var that = this;
var state = $.data(this,'tree');
var opts = state.options;
if(typeof target == "string" || typeof target == "number"){
realTarget = $(this).tree("find",target).target;
}else{
realTarget = target;
}
var ckSpan = $(realTarget).find(">span.tree-checkbox");
ckSpan.removeClass("tree-checkbox-disabled0").removeClass("tree-checkbox-disabled1").removeClass("tree-checkbox-disabled2");
if(ckSpan.hasClass('tree-checkbox0')){
ckSpan.addClass('tree-checkbox-disabled0');
}else if(ckSpan.hasClass('tree-checkbox1')){
ckSpan.addClass('tree-checkbox-disabled1');
}else{
ckSpan.addClass('tree-checkbox-disabled2')
}
if(!state.resetClick){
$(this).unbind('click').bind('click', function(e) {
var tt = $(e.target);
var node = tt.closest('div.tree-node');
if (!node.length){return;}
if (tt.hasClass('tree-hit')){
$(this).tree("toggle",node[0]);
return false;
} else if (tt.hasClass('tree-checkbox')){
if(tt.hasClass('tree-checkbox-disabled0') || tt.hasClass('tree-checkbox-disabled1') || tt.hasClass('tree-checkbox-disabled2')){
$(this).tree("select",node[0]);
}else{
if(tt.hasClass('tree-checkbox1')){
$(this).tree('uncheck',node[0]);
}else{
$(this).tree('check',node[0]);
}
return false;
}
} else {
$(this).tree("select",node[0]);
opts.onClick.call(this, $(this).tree("getNode",node[0]));
}
e.stopPropagation();
});
} });
}
});
调用方法
/**
* 禁用树形菜单的复选框
* @param disableChecks
*/
function forbiddenTreeCheck(disableChecks){
var level = 0;
$.each(disableChecks,function(key,item){
level = item.attributes.cj;
if(level == 1 || level == 2 || level == 3){
var node = $("#geologicalmapTableID").tree('find',item.id);
$('#geologicalmapTableID').tree('disableCheck', node.target);// 禁用
}
});
}
树形菜单的初始化
/**
* 初始化树形菜单
*/
function initgeologicaltreeLoad() {
var url = rootPath+'/jasframework/ycsy/geologicalmaptree.do';
$('#geologicalmapTableID').tree( {
url : url,
lines:true,
checkbox:true,
onBeforeLoad:function(node, param) {
if (node!=null) {
$(this).tree('options').url = url+"?cj="+node.attributes.cj+"&parentid="+encodeURI(encodeURI(node.attributes.parentid))+"&checked="+node.checked;
} else {
$(this).tree('options').url = url;
}
},
onCheck:function(node, checked) {
var nodeName = node.attributes.imagename;
var modelId = listModelName(nodeName);
var backID = judgeNodelContaineModelId(nodeName);
if(checked){
if(backID==null){
createProcessBar();
showPic(node.text,node.attributes.parentid);
setTimeout(function(){
closeProcessBar();
},3000);
}else{
objectActions(backID,"显隐",1);
}
}else{
var ID = getModelID(nodeName);
objectActions(backID,"显隐",0);
// objectActions(ID,"显隐",0);
}
},
onDblClick: function(node){
if(node.attributes.cj=='4'){
// var xTemp1=node.attributes.zxjd;
// var xTemp2=node.attributes.zdjd;
// var yTemp1=node.attributes.zxwd;
// var yTemp2=node.attributes.zdwd;
//
// var longitude =(parseFloat(xTemp1)+parseFloat(xTemp2))/2;
// var latitude =((parseFloat(yTemp1)+parseFloat(yTemp2)))/2;
var elevation1 = node.attributes.elevation;
var longitude= node.attributes.longitude;
var latitude = node.attributes.latitude;
var countheight = countHighlyMethod(longitude,latitude);
var elevation =elevation1 + countheight;
if(longitude==0||latitude==0){
$.messager.alert('警告','抱歉,此图件信息不全');
}else{
// setTimeout(function(){
location1(longitude,latitude,elevation1,'0.000000','-90.0000000');
// },1000);
} }
},
onContextMenu: function(e,node){
e.preventDefault();
onTreeContextMenu(node);
},
onLoadSuccess:function(node, data){
forbiddenTreeCheck(data);
if(node == null){
if(!isfirstLoaded){
rootNodes = data;
initFactoryName(data);
isfirstLoaded = !isfirstLoaded;
}
}else{
var parent = $('#geologicalmapTableID').tree('getParent', node.target);// 获取指定厂区区块节点
if(parent == null){
var children = $('#geologicalmapTableID').tree('getChildren', node.target);// 获取指定厂区区块节点
initAreaName(children);
}
}
}
});
}
nodetree中 前面复选框禁用插件的更多相关文章
- 在word中做复选框打对勾钩
在word中做复选框打对勾钩 现在终于搞明白正确的操作方法 一.你在word里输入2610,按alt+X就能出 空checkbox 你在word里输入2611,按alt+X就能出 打了勾的checkb ...
- QTableView中嵌入复选框CheckBox 的四种方法总结
搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...
- python QQTableView中嵌入复选框CheckBox四种方法
搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...
- jQuery+SpringMVC中的复选框选择与传值
一.checkbox选择 在jQuery中,选中checkbox通用的两种方式: $("#cb1").attr("checked","checked& ...
- 依赖layui form模块 复选框tree插件(拓展可根据属性单选还是多选,数据反选)
近些天接的项目用的是layui.以前没用过,踩了很多坑,坑就不多说了,直接说layui的tree.因为自带的tree不满足需求,所以在论坛.博客上找了很久终于找到了可以复选的的插件,原文地址:http ...
- 如何在select下拉列表中添加复选框?
近来在给一个公司做考试系统的项目,遇到的问题不少,但其中的几个让我对表单的使用颇为感兴趣,前端程序员都知道,下拉列表有select标签,复选框有checkbox,但是两者合在一起却少有人去研究,当时接 ...
- 在php中验证复选框
PHP接收多个同名复选框信息不像ASP那样自动转换成为数组,这给使用带来了一定不便.但是还是有解决办法的,就是利用javascript做一下预处理.多个同名复选框在javascript中还是以数组的形 ...
- DevExpress XtraTreeList的复选框 禁用
树的2个事件代码如下,通过节点的tag判断是否禁用节点前的复选框.树的节点加载时设置要禁用的节点tag为-1,不禁用的则设为相关的值 private void treeListPer_CustomDr ...
- asp.net,根据gridview 中checkbox复选框选中的行对数据库进行操作
在asp.net中,使用checkbox,对gridview添加复选框. 多选数据行后,根据已选数据,对原数据进行多条语句查询. string sql = "Select * from 表 ...
随机推荐
- Poj 1032 分类: Translation Mode 2014-04-04 09:09 111人阅读 评论(0) 收藏
Parliament Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16521 Accepted: 6975 Descr ...
- C++中的RAII机制
http://www.jellythink.com/archives/101 前言 在写C++设计模式——单例模式的时候,在写到实例销毁时,设计的GC类是很巧妙的,而这一巧妙的设计就是根据当对象的生命 ...
- try-catch语句讲解
try-catch 语句由一个 try 块后跟一个或多个 catch 子句构成,这些子句指定不同的异常处理程序. 引发异常时,公共语言运行时 (CLR) 会查找处理此异常的 catch 语句. 如果当 ...
- Excel每隔两行自动求和一次怎么操作?
今天ytkah得到一份数据,要求进行统计分析,由于是原始数据,还没处理过,数据量有点大,如下图所示(Excel每隔两行自动求和),每天的数字由两项组成,男生的人数.消费值和女生的人数和消费值,数字都在 ...
- 关于JS中的constructor与prototype
======================================================================== 在学习JS的面向对象过程中,一直对constructo ...
- rm删除命令
linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有 ...
- 【面试题043】n个骰子的点数
[面试题043]n个骰子的点数 题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s, 输入n,打印出s的所有可能的值出现的概率. n个骰子的总点数,最小为n,最大为6n,根据排列组 ...
- 正则表达式(RegExp)
正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...
- lintcode: 寻找旋转排序数组中的最小值
寻找旋转排序数组中的最小值 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2). 你需要找到其中最小的元素. 你可以假设数组中不存在重复的 ...
- 欧拉工程第53题:Combinatoric selections
package projecteuler51to60; class p53{ void solve1(){ int count=0; int Max=1000000; int[][] table=ne ...