<!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类.txt`介绍了Ext的基础类,包括`Ext.util.Observable`(观察者模式的实现)、`Ext.app.Application`(管理应用生命周期)等。理解这些类的用法对于构建可维护的应用至关重要。 4. **Ext...
以下是对EXTJS学习笔记的详细解释: 1. **环境配置**: 在EXTJS中,创建一个基本页面需要引入CSS样式表和JavaScript库。首先引入`extjs/resources/css/ext-all.css`以应用EXTJS的UI样式,接着引入`extjs/adapter/...
### ExtJS 学习笔记概览 #### 一、ExtJS 入门 **1.1 ExtJS 构成及如何引用** ExtJS 是一款基于 JavaScript 的开源框架,专为 Web 应用程序的前端界面设计。其核心优势在于提供了一套丰富的 UI 组件和强大的数据...
4. **Ext.util.Observable**: `Ext.util.Observable` 是一个抽象基类,提供了事件发布和订阅的机制。任何需要事件功能的类都可以继承它。通过 `addEvents` 方法,可以声明类支持的事件类型。`fireEvent` 方法用来...
至于事件基础,ExtJS中的事件处理主要依赖于`Ext.util.Observable`类。这个类提供了一套事件管理和监听的接口,包括`addEvents`(注册事件)、`addListener`(添加事件监听器)和`fireEvent`(触发事件)等。`...