jquery.linkbutton.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /**
  2. * jQuery EasyUI 1.3.6
  3. *
  4. * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
  7. * To use it on other terms please contact us at info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$.data(_2,"linkbutton").options;
  13. var t=$(_2).empty();
  14. t.addClass("l-btn").removeClass("l-btn-plain l-btn-selected l-btn-plain-selected");
  15. t.removeClass("l-btn-small l-btn-medium l-btn-large").addClass("l-btn-"+_3.size);
  16. if(_3.plain){
  17. t.addClass("l-btn-plain");
  18. }
  19. if(_3.selected){
  20. t.addClass(_3.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected");
  21. }
  22. t.attr("group",_3.group||"");
  23. t.attr("id",_3.id||"");
  24. var _4=$("<span class=\"l-btn-left\"></span>").appendTo(t);
  25. if(_3.text){
  26. $("<span class=\"l-btn-text\"></span>").html(_3.text).appendTo(_4);
  27. }else{
  28. $("<span class=\"l-btn-text l-btn-empty\">&nbsp;</span>").appendTo(_4);
  29. }
  30. if(_3.iconCls){
  31. $("<span class=\"l-btn-icon\">&nbsp;</span>").addClass(_3.iconCls).appendTo(_4);
  32. _4.addClass("l-btn-icon-"+_3.iconAlign);
  33. }
  34. t.unbind(".linkbutton").bind("focus.linkbutton",function(){
  35. if(!_3.disabled){
  36. $(this).addClass("l-btn-focus");
  37. }
  38. }).bind("blur.linkbutton",function(){
  39. $(this).removeClass("l-btn-focus");
  40. }).bind("click.linkbutton",function(){
  41. if(!_3.disabled){
  42. if(_3.toggle){
  43. if(_3.selected){
  44. $(this).linkbutton("unselect");
  45. }else{
  46. $(this).linkbutton("select");
  47. }
  48. }
  49. _3.onClick.call(this);
  50. }
  51. return false;
  52. });
  53. _5(_2,_3.selected);
  54. _6(_2,_3.disabled);
  55. };
  56. function _5(_7,_8){
  57. var _9=$.data(_7,"linkbutton").options;
  58. if(_8){
  59. if(_9.group){
  60. $("a.l-btn[group=\""+_9.group+"\"]").each(function(){
  61. var o=$(this).linkbutton("options");
  62. if(o.toggle){
  63. $(this).removeClass("l-btn-selected l-btn-plain-selected");
  64. o.selected=false;
  65. }
  66. });
  67. }
  68. $(_7).addClass(_9.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected");
  69. _9.selected=true;
  70. }else{
  71. if(!_9.group){
  72. $(_7).removeClass("l-btn-selected l-btn-plain-selected");
  73. _9.selected=false;
  74. }
  75. }
  76. };
  77. function _6(_a,_b){
  78. var _c=$.data(_a,"linkbutton");
  79. var _d=_c.options;
  80. $(_a).removeClass("l-btn-disabled l-btn-plain-disabled");
  81. if(_b){
  82. _d.disabled=true;
  83. var _e=$(_a).attr("href");
  84. if(_e){
  85. _c.href=_e;
  86. $(_a).attr("href","javascript:void(0)");
  87. }
  88. if(_a.onclick){
  89. _c.onclick=_a.onclick;
  90. _a.onclick=null;
  91. }
  92. _d.plain?$(_a).addClass("l-btn-disabled l-btn-plain-disabled"):$(_a).addClass("l-btn-disabled");
  93. }else{
  94. _d.disabled=false;
  95. if(_c.href){
  96. $(_a).attr("href",_c.href);
  97. }
  98. if(_c.onclick){
  99. _a.onclick=_c.onclick;
  100. }
  101. }
  102. };
  103. $.fn.linkbutton=function(_f,_10){
  104. if(typeof _f=="string"){
  105. return $.fn.linkbutton.methods[_f](this,_10);
  106. }
  107. _f=_f||{};
  108. return this.each(function(){
  109. var _11=$.data(this,"linkbutton");
  110. if(_11){
  111. $.extend(_11.options,_f);
  112. }else{
  113. $.data(this,"linkbutton",{options:$.extend({},$.fn.linkbutton.defaults,$.fn.linkbutton.parseOptions(this),_f)});
  114. $(this).removeAttr("disabled");
  115. }
  116. _1(this);
  117. });
  118. };
  119. $.fn.linkbutton.methods={options:function(jq){
  120. return $.data(jq[0],"linkbutton").options;
  121. },enable:function(jq){
  122. return jq.each(function(){
  123. _6(this,false);
  124. });
  125. },disable:function(jq){
  126. return jq.each(function(){
  127. _6(this,true);
  128. });
  129. },select:function(jq){
  130. return jq.each(function(){
  131. _5(this,true);
  132. });
  133. },unselect:function(jq){
  134. return jq.each(function(){
  135. _5(this,false);
  136. });
  137. }};
  138. $.fn.linkbutton.parseOptions=function(_12){
  139. var t=$(_12);
  140. return $.extend({},$.parser.parseOptions(_12,["id","iconCls","iconAlign","group","size",{plain:"boolean",toggle:"boolean",selected:"boolean"}]),{disabled:(t.attr("disabled")?true:undefined),text:$.trim(t.html()),iconCls:(t.attr("icon")||t.attr("iconCls"))});
  141. };
  142. $.fn.linkbutton.defaults={id:null,disabled:false,toggle:false,selected:false,group:null,plain:false,text:"",iconCls:null,iconAlign:"left",size:"small",onClick:function(){
  143. }};
  144. })(jQuery);