分享

easyui 禁用 linkbutton 问题

 yan的图书41 2015-05-14

<a id="btn" class="easyui-linkbutton">这是一个按钮</a>

引用别人的,下面是extend_linkbutton.js


/** 
 * linkbutton方法扩展 
 * @param {Object} jq 
 * 使用事项:
 * ?因为是直接覆盖linkbutton组件的diable和enable方法,所以用法不变。
 * ?不要再用domObj.onclick=function(){..}这种方式去绑定事件,这里未作支持
 * ?不要再用addEventListener或者attachEvent方法绑定事件,因为你已经用了jQuery框架

 */
$.extend($.fn.linkbutton.methods, {
    /** 
     * 激活选项(覆盖重写) 
     * @param {Object} jq 
     */
    enable: function(jq){
        return jq.each(function(){
            var state = $.data(this, 'linkbutton');
            if ($(this).hasClass('l-btn-disabled')) {
                var itemData = state._eventsStore;
                //恢复超链接 
                if (itemData.href) {
                    $(this).attr("href", itemData.href);
                }
                //回复点击事件 
                if (itemData.onclicks) {
                    for (var j = 0; j < itemData.onclicks.length; j++) {
                        $(this).bind('click', itemData.onclicks[j]);
                    }
                }
                //设置target为null,清空存储的事件处理程序 
                itemData.target = null;
                itemData.onclicks = [];
                $(this).removeClass('l-btn-disabled');
            }
        });
    },
    /** 
     * 禁用选项(覆盖重写) 
     * @param {Object} jq 
     */
    disable: function(jq){
        return jq.each(function(){
            var state = $.data(this, 'linkbutton');
            if (!state._eventsStore)
                state._eventsStore = {};
            if (!$(this).hasClass('l-btn-disabled')) {
                var eventsStore = {};
                eventsStore.target = this;
                eventsStore.onclicks = [];
                //处理超链接 
                var strHref = $(this).attr("href");
                if (strHref) {
                    eventsStore.href = strHref;
                    $(this).attr("href", "javascript:void(0)");
                }
                //处理直接耦合绑定到onclick属性上的事件 
                var onclickStr = $(this).attr("onclick");
                if (onclickStr && onclickStr != "") {
                   eventsStore.onclicks[eventsStore.onclicks.length] = new Function(onclickStr);
                    $(this).attr("onclick", "");
                }
                //处理使用jquery绑定的事件 
                var eventDatas = $(this).data("events") || $._data(this, 'events');
                if (eventDatas["click"]) {
                    var eventData = eventDatas["click"];
                    for (var i = 0; i < eventData.length; i++) {
                        if (eventData[i].namespace != "menu") {
                           eventsStore.onclicks[eventsStore.onclicks.length] = eventData[i]["handler"];
                          $(this).unbind('click', eventData[i]["handler"]);
                           i--;
                        }
                    }
                }
                state._eventsStore = eventsStore;
                $(this).addClass('l-btn-disabled');
            }
        });
    }
});


///使用
if (status[item]) {
$("#" + item).linkbutton("disable");
} else {
$("#" + item).linkbutton("enable");
}



//如果同时控制多个按钮,可以这样做


function controlButton(state, closeState) {

var status = {
"bt_dispatcher" : false,
"bt_finishi" : false
};

if (closeState != "") {
status["bt_dispatcher"] = true;
status["bt_finishi"] = true;
} else {

if (state == "handling") {
var slected = $('#dg_vaild_call').datagrid("getSelected");

$.ajax({
async : false,
url : "${ctx}/centersubsys/stationIsFinishi?caszId="
+ slected.id,
success : function(result) {
if (result.type == "error") {
status["bt_finishi"] = true;
}
}
});

} else if (state == "handled") {
status["bt_dispatcher"] = true;
status["bt_finishi"] = true;

} else if (state == "new") {

status["bt_finishi"] = true;
}
}

for ( var item in status) {
if (status[item]) {
$("#" + item).linkbutton("disable");
} else {
$("#" + item).linkbutton("enable");
}
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约