Browse Source

开关组件优化

huangbo 9 years ago
parent
commit
0db24fdd03

+ 46 - 44
display-server/etc/lua/tag/WmSwitch.lua

@ -4,7 +4,7 @@ local WmSwitch = Class(Tag)
4 4

5 5
--htmlbuff
6 6
function WmSwitch:createNew(obj,htmlbuff)
7
  self.htmlbuff=htmlbuff
7
  self.htmlbuff = htmlbuff
8 8
end
9 9

10 10
local function split(s, delim)
@ -30,71 +30,73 @@ end
30 30

31 31
--attr 所有属性
32 32
function WmSwitch:doStartTag(attr)
33
  --[[for k,v in pairs(attr) do
34
    self.htmlbuff:append(k,v)
35
  end--]]
36
  ---[[属性初始化
37
  attr.value=attr.value or "true"
38
  attr.label=attr.label or "On|Off"
39
  attr.onAction=attr.onAction or "console.log('On')"
40
  attr.offAction=attr.offAction or "console.log('Off')"
41
  attr.changeAction=attr.changeAction or "console.log('onChange')"
42
  attr.isEnable=attr.isEnable or "true"
43
  local stateStyle=""
44
  if attr.value=="false"
45
    then 
33
  --属性初始化
34
  attr.value = attr.value or "true"
35
  attr.label = attr.label or "on|off"
36
  local stateStyle = ""
37
  if attr.value=="false" then
46 38
    stateStyle="transform:translateX(-100%)"
47 39
  end
48 40
  self.htmlbuff:append([[
49 41
    <div class="value">
50 42
        <span class="e_switch e_switch-on" id="]])
51 43
  self.htmlbuff:append(attr.id)
52
  self.htmlbuff:append([[">
53
          <span class="e_switchOn">]])
44
  self.htmlbuff:append('">','\n')
45
  
54 46
  local labelTable=split(attr.label,"|")
47
  self.htmlbuff:append('<span class="e_switchOn">')
55 48
  self.htmlbuff:append(labelTable[1])
56
  self.htmlbuff:append([[</span>
57
          <span class="e_switchOff">]])
49
  self.htmlbuff:append('</span>','\n')
50
  
51
  self.htmlbuff:append('<span class="e_switchOff">')
58 52
  self.htmlbuff:append(labelTable[2])
59
  self.htmlbuff:append([[</span>
60
          <span class="e_switchBar" style="]])
53
  self.htmlbuff:append('</span>','\n')
54
  
55
  self.htmlbuff:append('<span class="e_switchBar" style="')
61 56
  self.htmlbuff:append(stateStyle)
62
  self.htmlbuff:append([["></span>
63
          <input type="hidden" value="]])
57
  self.htmlbuff:append('"></span>','\n')
58
  
59
  self.htmlbuff:append('<input type="hidden" value="')
64 60
  self.htmlbuff:append(attr.value)
65
  self.htmlbuff:append([[" >
61
  self.htmlbuff:append([["/>
66 62
        </span>
67 63
     </div>
68 64
  ]]);
69 65
  
70
  
71 66
  self.htmlbuff:append([[
72 67
  <script>
73
  require(["iScroll","wmSwitch","util"],function(iScroll,wmSwitch) {
74
  var obj=new wmSwitch("]])
75
  self.htmlbuff:append(attr.id)
76
  self.htmlbuff:append([[");
77
  obj.setOnAction(function(){]])
78
  self.htmlbuff:append(attr.onAction)
79
  self.htmlbuff:append([[});
80
  obj.setOffAction(function(){]])
81
  self.htmlbuff:append(attr.offAction)
82
  self.htmlbuff:append([[});
83
  obj.setChangeAction(function(){]])
84
  self.htmlbuff:append(attr.changeAction)
85
  self.htmlbuff:append([[});
86
  obj.isEnable(]])
87
  self.htmlbuff:append(attr.isEnable)
88
  self.htmlbuff:append([[);
89
  obj.create();
90
  WmWebUI.store("]])
68
  require(["wmSwitch"],function(WmSwitch) {
69
  	var wmSwitch = new WmSwitch("]])
91 70
  self.htmlbuff:append(attr.id)
92
  self.htmlbuff:append([[",obj);
71
  self.htmlbuff:append('");','\n')
72
  self.htmlbuff:append('wmSwitch.create();','\n');
73

74
  if attr.onAction then
75
	self.htmlbuff:append('	wmSwitch.setOnAction(function(){','\n')
76
	self.htmlbuff:append(attr.onAction,'\n')
77
	self.htmlbuff:append('});','\n');
78
  end
79
  if attr.offAction then
80
   	self.htmlbuff:append('	wmSwitch.setOffAction(function(){','\n')
81
	self.htmlbuff:append(attr.offAction,'\n')
82
	self.htmlbuff:append('});','\n');
83
  end
84
  if attr.changeAction then
85
   	self.htmlbuff:append('	wmSwitch.setChangeAction(function(){','\n')
86
	self.htmlbuff:append(attr.changeAction,'\n')
87
	self.htmlbuff:append('});','\n');
88
  end
89
  if attr.disabled then
90
   	self.htmlbuff:append('	wmSwitch.setDisabled(')
91
	self.htmlbuff:append(attr.disabled)
92
	self.htmlbuff:append(');','\n');
93
  end
94
  self.htmlbuff:append([[
93 95
  });
94 96
  </script>
95 97
  ]])
96 98
end
97
--结束标签
99

98 100
function WmSwitch:doEndTag()
99 101

100 102
end

+ 43 - 53
display-server/web/biz/js/tag/WmSwitch.js

@ -1,67 +1,57 @@
1 1
require(["domReady!","wmWebUI","jcl","mobile","iScroll5"],function(doc,WmWebUI,$,Mobile,IScroll){
2
	$("#open").tap( function(){
3
		var that = $(this);
4
		var switch01=WmWebUI.select("TestSwitchID1");
5
		if(switch01.isEnable()){
6
			if(switch01.getValue()){
7
				switch01.setValue(false);
8
				that.html("打开开关");
2
	new IScroll("#content",{tap:true,scrollbars: true});
3
	/*开关打开和关闭*/
4
	$("#testSwitch").tap( function(){
5
		var mySwitch = WmWebUI.select("mySwitch");
6
		if(!mySwitch.disabled){
7
			if(mySwitch.getValue()){
8
				$(this).html("打开开关");
9
				mySwitch.setValue(false);
9 10
			}else{
10
				switch01.setValue(true);
11
				that.html("关闭开关");
11
				$(this).html("关闭开关");
12
				mySwitch.setValue(true);
12 13
			}
13 14
		}else{
14 15
			Mobile.tip("开关不可用!");
15 16
		}
16 17
	});
17
	$("#setAction").tap(function(){
18
		var switch01=WmWebUI.select("TestSwitchID1");
19
		var myDate=new Date();
20
		switch01.setOnAction(function(){
21
			Mobile.tip("正在打开。事件设置时间:"+myDate.toLocaleString());
22
		});
23
		switch01.setOffAction(function(){
24
			Mobile.tip("正在关闭。事件设置时间:"+myDate.toLocaleString());
25
		});
26
		switch01.setChangeAction(function(){
27
			Mobile.tip("即将改变开关状态。事件设置时间:"+myDate.toLocaleString());
28
		});
29
		Mobile.tip("事件设置成功。设置时间:"+myDate.toLocaleString());
30
	});
31
	$("#cleanAction").tap(function(){
32
		var switch01=WmWebUI.select("TestSwitchID1");
33
		switch01.setOnAction(function(){
34
		});
35
		switch01.setOffAction(function(){
36
		});
37
		switch01.setChangeAction(function(){
38
		});
39
		Mobile.tip("事件清除成功!");
18
	/*开关禁用和取消*/
19
	$("#testSetDisabled").tap(function() {
20
		var mySwitch = WmWebUI.select("mySwitch");
21
		if (!mySwitch.disabled) {
22
			$(this).html("取消禁用");
23
			mySwitch.setDisabled(true);
24
		} else {
25
			$(this).html("禁用开关");
26
			mySwitch.setDisabled(false);
27
		}
40 28
	});
41
	$("#isEnable").tap(function(){
42
		var that = $(this);
43
		var switch01=WmWebUI.select("TestSwitchID1");
44
		if(switch01.isEnable()){
45
			switch01.isEnable(false);
46
			Mobile.tip("开关被设置为不可用。");
47
			that.html("取消禁用");
29
	/*开关文本设置*/
30
	$("#testSetLable").tap(function(){
31
		var mySwitch = WmWebUI.select("mySwitch");
32
		if(mySwitch.getLabel()=="开|关"){
33
			$(this).html("还原文本");
34
			mySwitch.setLabel("on|off");
48 35
		}else{
49
			switch01.isEnable(true);
50
			Mobile.tip("开关被设置为可用。");
51
			that.html("禁用开关");
36
			$(this).html("设置文本");
37
			mySwitch.setLabel("开|关");
52 38
		}
53 39
	});
54
	$("#lable").tap(function(){
55
		var str=prompt("请输入开关显示的内容……示例:   A|B");
56
		if(str == undefined){
57
			return;
58
		}
59
		var switch01=WmWebUI.select("TestSwitchID1");
60
		var strs = str.split("|");
61
		if(strs[1] == undefined){
62
			return ;
40
	/*开关事件设置*/
41
	$("#testSetAction").tap(function(){
42
		var mySwitch = WmWebUI.select("mySwitch");
43
		if(mySwitch.onAction){
44
			$(this).html("设置事件");
45
			mySwitch.setOnAction(null);
46
			mySwitch.setOffAction(null);
47
		}else{
48
			$(this).html("清除事件");
49
			mySwitch.setOnAction(function(){
50
				Mobile.tip("开关打开事件");
51
			});
52
			mySwitch.setOffAction(function(){
53
				Mobile.tip("开关关闭事件");
54
			});
63 55
		}
64
		switch01.setLabel(str);
65 56
	});
66
	new IScroll("#content",{tap:true,scrollbars: true});
67 57
});

+ 119 - 143
display-server/web/res/js/ui/wm-switch.js

@ -1,234 +1,210 @@
1
define(["jcl","iScroll","wmWebUI"],function($,iScrol,WmWebUI){
2
	function WmSwitch(id){
3
		this.entity=(function(obj){
4
			if(typeof(obj)=="object"){
5
				obj=$(obj);
6
			}else if(typeof(obj)=="string"){
7
				obj=$("#"+obj);
8
			}else{
9
				alert("没有匹配类型");
10
				return null;
11
			}
12
			return obj;
13
		})(id);
14
		//存储开关状态的值
15
		this.input=this.entity.find("input");
16
		//三个span,用来存储开、关、及开关滑块
17
		this.span=this.entity.find("span");
18
		//根据开关的默认状态,计算开关滑块到开关控件最边缘的间隙
19
		var space=0;
20
		space=this.span[2].offsetLeft-this.span[2].offsetWidth;	
21
		//console.log("space:"+space)
22
		//计算滑块左右应当移动的距离
23
		this.distance=this.entity[0].offsetWidth-this.span[2].offsetWidth-2*space;
24
		//console.log("distancd:"+this.distance)
25
		//设置开关是否可用
26
		this.enable=true;
27
		//当开关状态改变,或试图改变开关状态时调用(开关不可用时)。
28
		this.changeAction=function(){};
29
		//当开关被打开时调用。
30
		this.onAction=function(){};
31
		//当开关被关闭时调用。
32
		this.offAction=function(){};
1
/**
2
 * 开关组件
3
 */
4
define(["jcl","wmWebUI"],function($,WmWebUI){
5
	function WmSwitch(id) {
6
		this.entity = WmWebUI.getElement(id);
7
		this.input = this.entity.find("input");// 存储开关状态的值
8
		this.span = this.entity.find("span");// 三个span,用来存储开、关、及开关滑块
9
		var space = 0;// 根据开关的默认状态,计算开关滑块到开关控件最边缘的间隙
10
		space = this.span[2].offsetLeft - this.span[2].offsetWidth;
11
		this.distance = this.entity[0].offsetWidth - this.span[2].offsetWidth - 2 * space;// 计算滑块左右应当移动的距离
12
		this.disabled = false;// 设置开关非禁用
13
		this.onAction;	// 开关打开事件
14
		this.offAction;	// 开关关闭事件
15
		this.changeAction;// 开关状态变化时的事件
16
		this.clickAction;// 开关点击事件
17
		
18
		WmWebUI.store(id,this);
33 19
	}
34 20

35 21
	WmSwitch.prototype.create=function(){
36
		var that=this;
37
		if(!this.entity){
38
			alert("无法获取网页元素");
39
			return;
40
		}
41 22
		dragEvent(this);
42 23
	};
24
	
43 25
	function getX(event){
44 26
		return event.touches?event.touches[0].pageX:event.clientX;
45 27
	};
46
	//鼠标拖拽事件
28
	/*鼠标拖拽事件*/
47 29
	function dragEvent(that){
48
		//开关控件本身
49
		var obj=that.entity[0];
50
		//滑块
51
		var blockObj=obj.children[2];
52
		//是否为触屏
30
		var obj = that.entity[0];// 开关控件本身
31
		var blockObj = obj.children[2];// 滑块
32
		// 判断是否为触屏
53 33
		var hasTouch = "ontouchstart" in window;
54 34
		var START_EVENT = hasTouch ? "touchstart" : "mousedown";
55 35
		var MOVE_EVENT = hasTouch ? "touchmove" : "mousemove";
56 36
		var END_EVENT = hasTouch ? "touchend" : "mouseup";
57 37
		var CANCEL_EVENT = hasTouch ? "touchcancel" : "mouseup";
58
		//开始移动的位置
59
		var startX=-1;
60
		//当前被操作的元素
61
		var currElement;
62
		//是否在移动
63
		var isMoving=false;
64
		//正则,用于获取translateX的数值
65
		var reg=/\-?[0-9]+/g;
66
		//移动标志,用于区分是单击,还是移动事件
67
		var moveFlag=false;
68
		//body上的鼠标结束移动回调函数
69
		var handler=function(event){
38
		
39
		var startX = -1;// 开始移动的位置
40
		var currElement;// 当前被操作的元素
41
		var isMoving = false;// 是否在移动
42
		var reg = /\-?[0-9]+/g;// 正则,用于获取translateX的数值
43
		var moveFlag = false;// 移动标志,用于区分是单击,还是移动事件
44
		// body上的鼠标结束移动回调函数
45
		var handler = function(event){
70 46
			switchEvent(event);
71 47
		}
72
		//body上的鼠标移动回调函数
73
		var moveHandler=function(event){
48
		// body上的鼠标移动回调函数
49
		var moveHandler = function(event){
74 50
			moveEvent(event);
75 51
		}
76
		//滑块上添加拖拽开始事件
52
		// 滑块上添加拖拽开始事件
77 53
		blockObj.addEventListener(START_EVENT,function(event){
78
			//如果正在移动,则忽略
54
			// 如果正在移动,则忽略
79 55
			if(!isMoving){
80
				//记录当前被单击的对象
81
				currElement=obj;
56
				// 记录当前被单击的对象
57
				currElement = obj;
82 58
				startX= getX(event);
83
				document.body.addEventListener(CANCEL_EVENT,handler,false);//使用touchcancel事件
59
				document.body.addEventListener(CANCEL_EVENT,handler,false);// 使用touchcancel事件
84 60
				document.body.addEventListener(MOVE_EVENT,moveHandler,false);
85 61
			}
86 62
		},false);
87
		//在开关控件上添加移动事件
63
		// 在开关上添加移动事件
88 64
		obj.addEventListener(MOVE_EVENT,function(event){
89 65
			moveEvent(event);
90 66
		},false);
91
		//在开关控件上添加移动结束事件
67
		// 在开关上添加移动结束事件
92 68
		obj.addEventListener(END_EVENT,function(event){
93 69
			if(currElement!=obj){
94
				if(that.enable){
70
				if(!that.disabled){
95 71
					that.setValue(!that.getValue());
96
				}else{
97
					that.changeAction(that.enable);	
72
				}
73
				if(that.clickAction){
74
					that.clickAction(that.disabled);
98 75
				}
99 76
			}
100 77
			switchEvent(event);
101 78
		},false);
102
		//在开关控件上添加移动取消事件
79
		// 在开关上添加移动取消事件
103 80
		obj.addEventListener(CANCEL_EVENT,function(event){
104 81
			switchEvent(event);
105 82
		},false);
106
		//移动事件
83
		// 移动事件
107 84
		function moveEvent(event){
108 85
			if(currElement==obj){
109
				if(that.enable){
110
					//如果进入了移动事件,刚将移动状态设置为true,区分单击事件
111
					moveFlag=true;
112
					//鼠标当前位置与起始位置的偏移量
113
					var leftX=getX(event)-startX;
114
					//如果开关为打开状态,则leftX为负数,that.distance为正数,并且不会执行下面一段逻辑
115
					//如果开关为关闭状态,则leftX为正数,that.distance为正数,执行下面一段逻辑后,得到一个绝对值较小的负数。
86
				if(!that.disabled){
87
					moveFlag = true; //设置移动状态为true,区分单击事件
88
					var leftX = getX(event)-startX; // 鼠标当前位置与起始位置的偏移量
89
					// 如果开关为打开状态,则leftX为负数,that.distance为正数,并且不会执行下面一段逻辑
90
					// 如果开关为关闭状态,则leftX为正数,that.distance为正数,得到一个绝对值较小的负数
116 91
					if(!that.getValue()){
117
						leftX=leftX-that.distance;
92
						leftX = leftX-that.distance;
118 93
					}
119
					//计算出界
94
					// 计算出界
120 95
					if(leftX>=-that.distance && leftX<=0 ){
121 96
						blockObj.style.webkitTransform = "translateX(" + leftX + "px)"
122 97
					}
123 98
				}
124 99
			}
125 100
		}
126
		//松开滑块后,自动执行动画的事件
101
		/*松开滑块自动执行动画*/
127 102
		function switchEvent(event){
128 103
			if(currElement==obj){
129
				//此方法根据currElement对象来区分是否执行。当执行了一次此方法后,在将currElement置空,表示一次流程已经走完。
130
				//也用currElement来区分是那个对象触发的事件
131
				currElement=null;
132
				if(that.enable){
104
				// 使用currElement判断事件是否执行,同时也用来获取事件源
105
				currElement = null;	//currElement置空,表示一次操作结束
106
				if(!that.disabled){
133 107
					if(moveFlag){
134
						//当执行拖拽完成后的小动画的时候,通过一个状态位,将开关控件锁定。
135
						isMoving=true;
136
						blockObj.style.webkitTransition="none";//关闭css3动画
137
						//获取到当前translateX的值
108
						isMoving = true;	//粘滞动画时锁定移动状态
109
						blockObj.style.webkitTransition="none";// 关闭css3动画
110
						// 获取到当前translateX的值
138 111
						var translateX=parseInt(blockObj.style.webkitTransform.match(reg));
139
						//判断此时滑块在哪一边
112
						// 判断此时滑块在哪一边
140 113
						if(translateX<-that.distance/2 && translateX<0){
141
							blockObj.style.webkitTransition="-webkit-transform 0.1s ease";//粘滞时长0.1秒
114
							blockObj.style.webkitTransition="-webkit-transform 0.1s ease";// 粘滞时长0.1秒
142 115
							blockObj.style.webkitTransform="translateX(-"+that.distance+"px)";
143 116
							if(that.getValue()){
144
								that.changeAction(that.enable);
145
								//console.log(that.offAction());
146
								that.offAction();
117
								if(that.changeAction)
118
									that.changeAction();
119
								if(that.offAction)
120
									that.offAction();
147 121
							}
148 122
							that.input.val(false);
149 123
						}else{
150
							blockObj.style.webkitTransition="-webkit-transform 0.1s ease";//粘滞时长0.1秒
124
							blockObj.style.webkitTransition="-webkit-transform 0.1s ease";// 粘滞时长0.1秒
151 125
							blockObj.style.webkitTransform="translateX(0px)";
152 126
							if(!that.getValue()){
153
								that.changeAction(that.enable);
154
								//console.log(that.onAction());
155
								that.onAction();
127
								if(that.changeAction)
128
									that.changeAction();
129
								if(that.onAction)
130
									that.onAction();
156 131
							}
157 132
							that.input.val(true);
158 133
						}
159 134
						setTimeout(function(){
160
							//关闭动画
161
							blockObj.style.webkitTransition="none";
162
							//当动画完成,自动解除锁定
163
							isMoving=false;
135
							blockObj.style.webkitTransition="none";// 关闭动画
136
							isMoving = false;// 动画完成时自动解除锁定
164 137
						},200);
165 138
					}else{
166
						//如果是单击事件,则转换一次开关状态
167
						that.setValue(!that.getValue());
139
						that.setValue(!that.getValue());// 单击则改变开关状态
168 140
					}
169
				}else{
170
					//如果开关被关闭,则仅执行changeAction回调方法。
171
					that.changeAction(that.enable);	
172 141
				}
173 142
				document.body.removeEventListener(END_EVENT,handler,false);
174 143
				document.body.removeEventListener(MOVE_EVENT,moveHandler,false);
175
				moveFlag=false;
144
				moveFlag = false;
176 145
			}
177 146
		}
178 147
	}
179
	WmSwitch.prototype.isEnable=function(enable){
180
		if(enable==undefined){
181
			return this.enable;
148
	/*设置开关是否可用*/
149
	WmSwitch.prototype.setDisabled = function(disabled){
150
		if(disabled==undefined){
151
			return this.disabled;
182 152
		}
183
		if(enable){
184
			this.enable=true;
185
			this.entity.removeClass("e_dis");
186
		}else{
187
			this.enable=false;
153
		
154
		if(disabled){
155
			this.disabled = true;
188 156
			this.entity.addClass("e_dis");
157
		}else{
158
			this.disabled = false;
159
			this.entity.removeClass("e_dis");
189 160
		}
190 161
	};
191
	WmSwitch.prototype.setLabel=function(label){
192
		var strs=label.split("|");
193
		this.span[0].innerHTML=strs[0];
194
		this.span[1].innerHTML=strs[1];
162
	/*设置开关文本*/
163
	WmSwitch.prototype.setLabel = function(label) {
164
		var strs = label.split("|");
165
		this.span[0].innerHTML = strs[0];
166
		this.span[1].innerHTML = strs[1];
195 167
	};
196
	WmSwitch.prototype.getLabel=function(){
197
		return this.span[0].innerHTML+"|"+this.span[1].innerHTML;
168
	/*获取开关文本*/
169
	WmSwitch.prototype.getLabel = function() {
170
		return this.span[0].innerHTML + "|" + this.span[1].innerHTML;
198 171
	};
199
	WmSwitch.prototype.setValue=function(val){
200
		if(this.getValue()!=val){
201
			if(val){
202
				if(this.onAction){
203
					this.changeAction(this.enable);
204
					//console.log(this.onAction());
172
	/*设置开关的值*/
173
	WmSwitch.prototype.setValue = function(value) {
174
		if (this.getValue() != value) {
175
			if (value) {
176
				if (this.onAction)
205 177
					this.onAction();
206
				}
207
				this.span[2].style.webkitTransition="-webkit-transform 0.2s ease";//滑动时长0.1秒
208
				this.span[2].style.webkitTransform="translateX(0px)";
209
			}else{
210
				if(this.offAction){
211
					this.changeAction(this.enable);
212
					//console.log(this.offAction());
178
				if(this.changeAction)	
179
					this.changeAction();
180
				this.span[2].style.webkitTransition = "-webkit-transform 0.2s ease";// 滑动时长0.1秒
181
				this.span[2].style.webkitTransform = "translateX(0px)";
182
			} else {
183
				if (this.offAction)
213 184
					this.offAction();
214
				}
215
				this.span[2].style.webkitTransition="-webkit-transform 0.2s ease";//滑动时长0.1秒
216
				this.span[2].style.webkitTransform="translateX(-"+this.distance+"px)";
185
				if(this.changeAction)	
186
					this.changeAction();
187
				this.span[2].style.webkitTransition = "-webkit-transform 0.2s ease";// 滑动时长0.1秒
188
				this.span[2].style.webkitTransform = "translateX(-" + this.distance + "px)";
217 189
			}
218
			this.input.val(val);
190
			this.input.val(value);
219 191
		}
220 192
	};
221
	WmSwitch.prototype.getValue=function(){
193
	/*获取开关的值*/
194
	WmSwitch.prototype.getValue = function(){
222 195
		return this.input.val()=="true";
223 196
	};
224
	WmSwitch.prototype.setChangeAction=function(callback){
225
		this.changeAction=callback;
226
	}
197
	/*指定开关打开事件*/
227 198
	WmSwitch.prototype.setOnAction=function(callback){
228
		this.onAction=callback;	
199
		this.onAction = callback;	
229 200
	};
201
	/*指定开关关闭事件*/
230 202
	WmSwitch.prototype.setOffAction=function(callback){
231
		this.offAction=callback;
203
		this.offAction = callback;
232 204
	};
205
	/*指定开关状态变化时的事件*/
206
	WmSwitch.prototype.setChangeAction=function(callback){
207
		this.changeAction = callback;
208
	}
233 209
	return WmSwitch;
234 210
});

+ 7 - 10
display-server/web/template/webapp/tag/WmSwitch.html

@ -10,6 +10,7 @@
10 10
		}
11 11
	</style>
12 12
	{%>template/common/Head.html%}
13
	<script type="text/javascript" src="biz/js/tag/WmSwitch.js"></script>
13 14
</head>
14 15
<body>
15 16
<div class="c_navBar">
@ -25,14 +26,14 @@
25 26
		<div class="c_list">
26 27
			<ul>
27 28
				<li style="text-align:center;padding-top: 0.1rem;padding-bottom: 0.1rem;">
28
					<wm-switch id="TestSwitchID1" value=false label="开|关" onAction="console.log('开')" offAction="console.log('关')" changeAction="console.log('变化')" >
29
					<wm-switch id="mySwitch" value="false" label="开|关">
29 30
					</wm-switch>
30 31
				</li>
31 32
				<li ontap>
32 33
					<div class="content">
33 34
						<div class="main">
34 35
							<div class="title">描述:</div>
35
							<div class="info">此标签设置了几乎所有的属性,同时可以通过上面的控制台控制动态控制此标签的属性。</div>
36
							<div class="info"></div>
36 37
						</div>
37 38
					</div>
38 39
				</li>
@ -41,24 +42,20 @@
41 42
		<div class="c_title">控制台</div>
42 43
		<div class="c_submit" id="consoleMenu" >
43 44
			<ul>
44
				<li><button class="e_button-ok" ontap id="open">打开开关</button></li>
45
				<li><button class="e_button-ok" id="testSwitch">打开开关</button></li>
45 46
			</ul>
46 47
			<ul>
47
				<li><button class="e_button-ok" ontap id="isEnable">禁用开关</button></li>
48
				<li><button class="e_button-ok" id="testSetDisabled">禁用开关</button></li>
48 49
			</ul>
49 50
			<ul>
50
				<li><button class="e_button-ok" ontap id="lable" >设置内容</button></li>
51
				<li><button class="e_button-ok" id="testSetLable">设置文本</button></li>
51 52
			</ul>
52 53
			<ul>
53
				<li><button class="e_button-ok" ontap id="setAction">设置事件</button></li>
54
			</ul>
55
			<ul>
56
				<li><button class="e_button-ok" ontap  id="cleanAction">清除事件</button></li>
54
				<li><button class="e_button-ok" id="testSetAction">设置事件</button></li>
57 55
			</ul>
58 56
		</div>
59 57
		<div class="e_space"></div>
60 58
	</div>
61 59
</div>
62 60
</body>
63
<script type="text/javascript" src="biz/js/tag/WmSwitch.js"></script>
64 61
</html>