`
PrisonBreak
  • 浏览: 96636 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Extjs4学习笔记-Ext.util.TaskRunner

 
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Ext.util.TaskRunner</title>
		
		<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
		<script type="text/javascript" src="../extjs/bootstrap.js"></script>
		<script type="text/javascript" src="../extjs/ext-lang-zh_CN.js"></script>
		
		<style type="text/css">
			#div1 {
				width: 160px;
				height: 160px;
				line-height: 80px;
				padding: 0;
				font-size: 80px;
				text-align: center;
				font-weight: bold;
				display: none;
			}
		</style>
		
		<script type="text/javascript">
			
			Ext.onReady(function() {
				
				var input = Ext.getDom("input1");
				var div = Ext.getDom("div1");
				var button = Ext.getDom("stopButton");
				
				var task = {
					run: function(count) {
						var v = parseInt(input.value);
						var d = v - count;
						if(v > count) {
							div.innerHTML = v - count;
						} else {
							input.removeAttribute("readonly");
							div.style.display = "none";
							button.value = "开始";
							Ext.MessageBox.alert("信息", "时间到!");
						}
					},
					interval: 1000,
					duration: 1000
				}
				
				//为文本框绑定keypress事件,禁止输入非数字字符
				Ext.EventManager.on("input1", "keypress", function(e, el) {
					var key = e.getKey();
					if(key < e.ZERO || key > e.NINE) {
						e.stopEvent();
					}
				});
				
				
				//为按钮绑定单击事件
				Ext.EventManager.on("stopButton", "click", function(e, el) {
					var t = task;
					if(el.value == "停止") {
						el.value = "开始";
						input.removeAttribute("readonly");
						div.style.display = "none";
						Ext.TaskManager.stop(task);
					} else {
						var v = parseInt(input.value);
						if(v > 0) {
							t.duration = v * 1000;
							input.readOnly = "true";
							div.innerHTML = v;
							div.style.display = "block";
							el.value = "停止";
							Ext.TaskManager.start(task);
						}
					}
				});
				
				//封装好的单击事件:Ext.util.ClickRepeater
				// Ext.create("Ext.util.ClickRepeater", "stopButton", {
					// pressedCls: 'pressed',
					// listeners: {
						// click: function(e) {
							// var el = button;
							// var t = task;
							// if(el.value == "停止") {
								// el.value = "开始";
								// input.removeAttribute("readonly");
								// div.style.display = "none";
								// Ext.TaskManager.stop(task);
							// } else {
								// var v = parseInt(input.value);
								// if(v > 0) {
									// t.duration = v * 1000;
									// input.readOnly = "true";
									// div.innerHTML = v;
									// div.style.display = "block";
									// el.value = "停止";
									// Ext.TaskManager.start(task);
								// }
							// }
						// }
					// }
				// });
				
			});
			
		</script>
		
	</head>
	<body>
		<div style="padding: 20px 0 0 20px;">
			<input id="input1" type="text" value="10" />
			<input id="stopButton" type="button" value="开始" />
			<div id="div1"></div>
		</div>
	</body>
</html>

 

分享到:
评论

相关推荐

    Ext API详解--笔记

    `EXT核心API详解(一) - Ext类.txt`介绍了Ext的基础类,包括`Ext.util.Observable`(观察者模式的实现)、`Ext.app.Application`(管理应用生命周期)等。理解这些类的用法对于构建可维护的应用至关重要。 4. **Ext...

    EXTJS学习笔记,自己学习的过程,不多但是实用

    以下是对EXTJS学习笔记的详细解释: 1. **环境配置**: 在EXTJS中,创建一个基本页面需要引入CSS样式表和JavaScript库。首先引入`extjs/resources/css/ext-all.css`以应用EXTJS的UI样式,接着引入`extjs/adapter/...

    老师整理的extjs学习笔记

    ### ExtJS 学习笔记概览 #### 一、ExtJS 入门 **1.1 ExtJS 构成及如何引用** ExtJS 是一款基于 JavaScript 的开源框架,专为 Web 应用程序的前端界面设计。其核心优势在于提供了一套丰富的 UI 组件和强大的数据...

    Extjs学习笔记有用

    4. **Ext.util.Observable**: `Ext.util.Observable` 是一个抽象基类,提供了事件发布和订阅的机制。任何需要事件功能的类都可以继承它。通过 `addEvents` 方法,可以声明类支持的事件类型。`fireEvent` 方法用来...

    Extjs学习笔记之八 继承和事件基础

    至于事件基础,ExtJS中的事件处理主要依赖于`Ext.util.Observable`类。这个类提供了一套事件管理和监听的接口,包括`addEvents`(注册事件)、`addListener`(添加事件监听器)和`fireEvent`(触发事件)等。`...

Global site tag (gtag.js) - Google Analytics