暫無描述

Transfer.js 8.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. (function($){
  2. $.fn.transferItem = function(options){
  3. function transferItem($this,options){
  4. this.init($this,options)
  5. }
  6. transferItem.prototype = {
  7. init: function($this,options){
  8. this.el = $this;
  9. this.ops = options;
  10. this.transferAllCheck = this.el.find(".transfer-all-check");
  11. this.switchBtn = this.el.find(".to-switch");
  12. this.allCheckedBoxes = this.el.find(".tyue-checkbox-input");
  13. this.alldivBoxes = this.el.find(".ty-tree-div");
  14. this.checkBoxEvent();
  15. this.allCheckEvent();
  16. this.switchEvent();
  17. this.checkBoxesDbClick();
  18. time = null;
  19. },
  20. //按钮切换事件
  21. switchEvent : function(){
  22. var that = this;
  23. this.switchBtn.on("click",function(){
  24. that.transferAllCheck.removeAttr("checked","checked");
  25. var _this = $(this);
  26. var a_tagClass = null;
  27. if(_this.hasClass("ty-transfer-btn-toright")){
  28. findCheckbox = _this.parents(".ty-transfer").find(".transfer-list-left li");
  29. inputCheckbox = _this.parents(".ty-transfer").find(".transfer-list-right ul");
  30. a_tagClass = "ty-transfer-btn-toright";
  31. }else{
  32. findCheckbox = _this.parents(".ty-transfer").find(".transfer-list-right li");
  33. inputCheckbox = _this.parents(".ty-transfer").find(".transfer-list-left ul");
  34. a_tagClass = "ty-transfer-btn-toleft";
  35. }
  36. var checkBox = findCheckbox.find(":checked");
  37. if(checkBox != 0){
  38. var arrVal = [];
  39. checkBox.each(function(){
  40. $(this).removeAttr("checked");
  41. var appendText = $(this).parents(".ty-tree-div").parent("li");
  42. arrVal.push(appendText);
  43. that.removeActiveEvent(a_tagClass,"active");
  44. that.addActiveEvent(a_tagClass,"disabled");
  45. });
  46. inputCheckbox.prepend(arrVal);
  47. }
  48. })
  49. },
  50. //所有标签单击选中事件
  51. checkBoxEvent : function(){
  52. var that = this;
  53. this.allCheckedBoxes.on("click",function(){
  54. clearTimeout(time);
  55. time = setTimeout(function(){
  56. var classNames = that.checkTagClass($(this));
  57. if($(this).is(":checked")){
  58. that.removeActiveEvent(classNames[0],"disabled");
  59. that.addActiveEvent(classNames[0],"active");
  60. if(!$("."+classNames[1]).hasClass("active")){
  61. that.addActiveEvent(classNames[1],"disabled");
  62. }
  63. }else{
  64. var siblingsTag = $(this).parents(".ty-tree-div").parent("li").siblings("li").find(".tyue-checkbox-input");
  65. if(!siblingsTag.is(":checked")){
  66. that.removeActiveEvent(classNames[0],"active");
  67. that.addActiveEvent(classNames[0],"disabled");
  68. $(this).parents(".ty-transfer").find(".transfer-all-check").removeAttr("checked","checked")
  69. }
  70. }
  71. }.bind(this),200);
  72. });
  73. },
  74. //所有按钮双击事件
  75. checkBoxesDbClick : function(){
  76. var that = this;
  77. this.alldivBoxes.bind("dblclick",function(event){
  78. var _this = $(this);
  79. $(this).removeAttr("checked");
  80. if(_this.parents(".ty-transfer-list").hasClass("transfer-list-left")){
  81. inputCheckbox = _this.parents(".ty-transfer").find(".transfer-list-right ul");
  82. btnCheckbox = that.el.find(".ty-transfer-btn-toright");
  83. }else{
  84. inputCheckbox = _this.parents(".ty-transfer").find(".transfer-list-left ul");
  85. btnCheckbox = that.el.find(".ty-transfer-btn-toleft");
  86. }
  87. var siblingsTag = _this.parent("li").siblings("li").find(".tyue-checkbox-input");
  88. if(!siblingsTag.is(":checked")){
  89. btnCheckbox.removeClass("active");
  90. }
  91. var appendText = _this.parent("li");
  92. inputCheckbox.prepend(appendText);
  93. appendText.find(".tyue-checkbox-input").removeAttr("checked");
  94. });
  95. },
  96. //全选按钮事件
  97. allCheckEvent : function(){
  98. var that = this;
  99. this.transferAllCheck.on("click",function(){
  100. var checkBoxs = $(this).parents(".ty-transfer-list-foot").siblings(".ty-transfer-list-body").find(":checkBox");
  101. var classNames = that.checkTagClass($(this));
  102. if($(this).prop("checked") == true){
  103. checkBoxs.attr("checked","checked");
  104. that.removeActiveEvent(classNames[0],"disabled");
  105. that.addActiveEvent(classNames[0],"active");
  106. if(!$("."+classNames[1]).hasClass("active")){
  107. that.addActiveEvent(classNames[1],"disabled");
  108. }
  109. }else{
  110. checkBoxs.removeAttr("checked","checked");
  111. that.removeActiveEvent(classNames[0],"active");
  112. that.addActiveEvent(classNames[0],"disabled");
  113. }
  114. })
  115. },
  116. //按钮添加class事件
  117. checkTagClass : function($that){
  118. var parentsTransfer = $that.parents(".ty-transfer-list");
  119. var tagClass = null;
  120. var tagRemoveClass = null;
  121. if(parentsTransfer.hasClass("transfer-list-left")){
  122. tagClass = "ty-transfer-btn-toright"
  123. tagRemoveClass = "ty-transfer-btn-toleft";
  124. }else{
  125. tagClass = "ty-transfer-btn-toleft"
  126. tagRemoveClass = "ty-transfer-btn-toright";
  127. }
  128. return [tagClass,tagRemoveClass];
  129. },
  130. addActiveEvent : function(position,addClasses){
  131. this.el.find("."+position).addClass(addClasses);
  132. },
  133. removeActiveEvent : function(position,addClasses){
  134. this.el.find("."+position).removeClass(addClasses);
  135. },
  136. }
  137. new transferItem(this,options)
  138. }
  139. /*
  140. * 穿梭框 end
  141. */
  142. })(jQuery);
  143. //-----------------------------此处jquery 插件 结束 下面为免调用全局方法---------------------------------
  144. jQuery(document).ready(function($) {
  145. /*
  146. * 自定义列的功能////////////////////////////////////////////////////////////////////////////////
  147. * */
  148. /*
  149. * 按钮点击 start
  150. * */
  151. $(".btn").click(function(){
  152. //主按钮点击后 样式
  153. var _this = $(this);
  154. _this.addClass("ued-btn-clicked");
  155. setTimeout(function(){
  156. _this.removeClass("ued-btn-clicked");
  157. },300);
  158. /*if($(this).hasClass("main-btn-active")){
  159. $(this).css("background","#7AC7F8")
  160. }else if($(this).hasClass("secondary-btn-active")){
  161. }*/
  162. //判断是否有自定义属性改变文本
  163. if($.type($(this).attr('data-text')) != "undefined")
  164. {
  165. var datatext = $(this).attr("data-text");
  166. $(this).text(datatext);
  167. }
  168. });
  169. });