<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"); } } } |
|