如何禁用easyui中linkbutton的click事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何禁用easyui中linkbutton的click事件相关的知识,希望对你有一定的参考价值。
linkbutton禁用只能禁用样式,不能禁用click事件。$('#btn').linkbutton('disable');
解决方法:
第一种方法:
juqery unbind方法
第二种方法:
判断下disable属性 $('#btn').linkbutton('disable');
$('#btn').click(function ()
if ($(this).linkbutton('options').disabled == false)
alert('a')
);
第三种方法:
拓展:
function setDisabled(target, disabled)
var state = $.data(target, "linkbutton");
if (disabled)
state.options.disabled = true;
var href = $(target).attr("href");
if (href)
state.href = href;
$(target).attr("href", "javascript:void(0)");
if (target.onclick)
state.onclick = target.onclick;
target.onclick = null;
//事件处理
var events = $(target).data("events");
if(events)
var clicks = events.click;//暂时只处理click事件
state.events = state.events||[];
$.extend(state.events, clicks);
$(target).unbind("click");
$(target).addClass("l-btn-disabled");
else
state.options.disabled = false;
if (state.href)
$(target).attr("href", state.href);
if (state.onclick)
target.onclick = state.onclick;
if (state.events)
for ( var i=0;i<state.events.length;i++)
$(target).bind(state.events[i].type,state.events[i].handler);
$(target).removeClass("l-btn-disabled");
; 参考技术A 查看linkbutton的源码,发现按钮失效时,只处理了href属性和onclick属性产生的事件。
于是重写了linkbutton的disable和enable方法,使其不触发jquery的click事件(调用了jquery底层的事件对象,1.9版)
如果linkbutton在创建时就设了disable属性,扩展无用,因为这时会调用easuyi本身的失效方法。
$.extend($.fn.linkbutton.methods,
disable: function (jq, newposition)
return jq.each(function ()
setDisabled(this, true);
);
,
enable: function (jq, newposition)
return jq.each(function ()
setDisabled(this, false);
);
);
function setDisabled(target, disabled)
var state = $.data(target, 'linkbutton');
var opts = state.options;
$(target).removeClass('l-btn-disabled l-btn-plain-disabled');
if (disabled)
opts.disabled = true;
var href = $(target).attr('href');
if (href)
state.href = href;
$(target).attr('href', 'javascript:void(0)');
if (target.onclick)
state.onclick = target.onclick;
target.onclick = null;
if ($._data(target).events && $._data(target).events.click)
state.jclick = $._data(target).events.click.map(function (r)
return namespace: r.namespace, handler: r.handler ;
);
$(target).unbind('click');
opts.plain ? $(target).addClass('l-btn-disabled l-btn-plain-disabled') : $(target).addClass('l-btn-disabled');
else
opts.disabled = false;
if (state.href)
$(target).attr('href', state.href);
if (state.onclick)
target.onclick = state.onclick;
if (state.jclick)
for (var i = 0; i < state.jclick.length; i++)
var click = state.jclick[i];
$(target).bind('click' + (click.namespace ? '.' + click.namespace : ''), click.handler);
转 http://blog.csdn.net/rainxie_/article/details/52766813
在easyui datagrid中formatter数据后使用linkbutton
http://ntzrj513.blog.163.com/blog/static/2794561220139245411997/
formatter:function(value,rowData,rowIndex){ if(value==""||value==null){ return "未知";
return rowData.cname+"<a class=‘easyui-linkbutton‘ data-options=\"iconCls:‘icon-user_green‘ plain:true \" href=‘javascript: void(0);‘>详细</a>";
效果:
onLoadSuccess事件是在datagrid加载数据完成后的事件,相当于datagrid的回调函数,这里的加载数据完成不是指从远程或本地获得数据完成,而是在获取数据并解析完成datagrid,包括已经完成所有columns中的formatter属性,因此可以在onLoadSuccess事件中解析linkbutton组件。
columns属性中格式化数据:
formatter:function(value,rowData,rowIndex){
if(value==""||value==null){
return "未知";
}else{
return rowData.cname+"<a class=‘loan_ct_view_button‘ href=‘javascript: void(0);‘>详细</a>";
}
}
onLoadSuccess:function(data){ $(".loan_ct_view_button").linkbutton({ text:‘详细‘, plain:true, iconCls:‘icon-user_green‘ });
以上是关于如何禁用easyui中linkbutton的click事件的主要内容,如果未能解决你的问题,请参考以下文章
在easyui datagrid中formatter数据后使用linkbutton