jquery.linkbutton.js 3.8 KB

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