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 表 ...
随机推荐
- FbxDataType is ambiguous
??? 使用fbx自定义的类型的时候,比如 FbxIntDT 会有link error 根本原因是 FbxDataType is ambiguous solution: 把fbx的lib换成 libf ...
- map线程
来看看map线程到底是如何运行的 很早就知道一个map是一个线程,以后有可能改成一个map一个进程,那就先来看看一个map一个线程是如何运作的 其实刚开始整个服务器就是两个线程,但发现这样服务器支持的 ...
- wifi current SSID
1. 引入头,#import <SystemConfiguration/CaptiveNetwork.h> 2. 获取SSID info + (id)fetchSSIDInfo { NSA ...
- Map:比较新增加日期的和需要删除的日期 使用方法
1.场景描述:根据在日历选择的日期,数据库来保持我们选择日期. 2.方法,硬删除的方法,每次全部删除,然后再重新添加选择的新的日期.这样导致如果需要保存create_time的情况,那么每次操作的都是 ...
- linux 上传/下载文件到windows工具
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地: 与ssh ...
- win7建wifi 热点,附wifi小工具
首先申明:1)以下操作均在管理员身份下操作,其他用户下请亲测. 2)具备无线网卡,并且已经安装好了驱动. 1.打开命令行:输入netsh wlan set hostedn ...
- windows JDK 版本切换
windows JDK 版本切换1. HKEY_LOCAL_MACHINE“SOFTWARE“JavaSoft“Java Runtime Environment“CurrentVersion, 把这个 ...
- 跨平台的加密算法XXTEA 的封装
跨平台的加密算法XXTEA 的封装 XXTEA算法的结构非常简单,只需要执行加法.异或和寄存的硬件即可,且软件实现的代码非常短小,具有可移植性. 维基百科地址:http://en.wikipedia. ...
- Qt之QSpacerItem(控件之间的间距不尽相同,可以借助QSpacerItem来设置,并且还可以对QSpacerItem设置QSizePolicy)
http://blog.csdn.net/u011012932/article/details/51614868
- IDL_GUI
菜单栏设计 PRO IDLGui ;构建界面 ;显示 ;添加事件 tlb=WIDGET_BASE(xsize=400,ysize=400,/column,mbar=mbar);实现基类 file=WI ...