Extjs4学习笔记-Ext.util.DelayedTask

DelayedTask对象主要用于实现输入缓冲的功能,在指定的时间间隔内,如果用户没有操作触发事件,就会自行实际触发函数。

<!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.DelayedTask</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">
			#numList span {
				width: 100px;
				height: 20px;
				display: block;
			}
		</style>
		
		<script type="text/javascript">
			
			/**
			 * DelayedTask对象主要用于输入缓冲的功能,在指定的时间间隔内,如果用户没有操作触发事件,就会执行触发函数。
			 * DelayedTask对象提供以下两个方法:
			 * 	1.cancel:取消最后的队列任务
			 * 	2.delay:取消当前任务,开始一个新的任务
			 * 
			 * 下面通过一个示例来学习如何使用DeldayedTask对象
			 * (1)功能描述:
			 * 	如果在1秒内没有向输入框中输入任何数字,就会根据文本框中的数值把列表(有50个数字)中小于该数值的值过滤掉
			 */
			
			Ext.onReady(function() {
				
				html = "";
				for (var i=0; i < 50; i++) {
				  html += "<span>" + Math.floor(Math.random() * 1000) + "</span>";
				};
				
				var el = Ext.getDom("numList");
				el.innerHTML = html;
				
				//创建一个DelayedTask对象的实例
				var task = new Ext.util.DelayedTask(function() {
					var els = Ext.getDom("numList").childNodes;
					var value = parseInt(Ext.getDom("input1").value);
					for (var i=els.length-1; i>=0; i--) {
					  var v = parseInt(els[i].innerHTML);
					  if(v < value) {
					  	els[i].style.display="none";
					  } else {
					  	els[i].style.display="block";
					  }
					};
				});
				
				//为输入框绑定keypress
				Ext.EventManager.on("input1", "keypress", function(e, el) {
					var key = e.getKey();
					if(key < e.ZERO || key > e.NINE) {
						e.stopEvent();
					}
					task.delay(1000);
				});
				
			});
			
			
		</script>
		
	</head>
	<body>
		<input id="input1" value="" />
		<div id="numList"></div>
	</body>
</html>

 

你可能感兴趣的:(extjs4)