如何禁用easyui中linkbutton的click事件

 我来答
福喜900
2015-01-12 · TA获得超过6.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:9993万
展开全部
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");
}
};
gljun
2017-08-08
知道答主
回答量:9
采纳率:0%
帮助的人:4.8万
展开全部
查看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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式