问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JS中说给什么事件指定监听器,这是什么意思?监听器是什么意思,通俗易懂点,谢谢

发布网友 发布时间:2022-04-24 03:19

我来回答

4个回答

懂视网 时间:2022-04-24 07:40

<script type="text/javascript">
	 (function(){
	 	/**
	 	*dqKeys v1.0.0 | (c) 2016 www.findme.wang
	 	*@params json keys 监听的按键
	 	*@params bool isOrder 按键是否有相应的顺序
	 	*@params Function sucFuc 完成按键的回调函数
	 	*@params Function cancelFuc 完成按键取消后的回调函数
	 	*@author lidequan 
	 	*/
	 	var dqKeys = function(keys,isOrder,sucFuc,cancelFuc) {
	 // 函数体
	 return new dqKeys.fn.init(keys,isOrder,sucFuc,cancelFuc);
	 }
	 dqKeys.fn = dqKeys.prototype = {
	 	'version':'1.0.0', //版本号
	 	'author':'lidequan', //作者
	 	'rightKeys':{}, //监听的按键{key:code},code为按键对应的ascii码 
	 	'curKeys':[], //当前按下的键
	 	'sucFuc':null, //完成按键的回调函数
	 	'cancelFuc':null, //完成按键取消后的回调函数
	 	'isFinsh':false, //判断是否完成按键
	 	'isOrder':false, //按键是否有相应的顺序
	 	init:function(keys,isOrder,sucFuc,cancelFuc){
	 		this.rightKeys=keys;
	 		this.sucFuc=sucFuc;
	 		this.cancelFuc=cancelFuc;
	 		this.isOrder=isOrder;
	 		
	 		return this;
	 	},
	 	listenkeys:function(){//监听用户键盘操作	 		
	 		var _self=this;
	 		_self.addListener('keydown', function(oEvent){
	 			var oEvent =oEvent || window.event;
					if(!_self.arrayContain(_self.curKeys,oEvent.keyCode)){
					 	if(_self.isOrder && _self.getNextKey() == oEvent.keyCode){
					 		_self.curKeys.push(oEvent.keyCode);
					 	}else if(!_self.isOrder){
					 		_self.curKeys.push(oEvent.keyCode);
					 	}
				 	}
				 	if(_self.checkResult(_self.rightKeys,_self.curKeys)){
				 		if(_self.sucFuc && !_self.isFinsh){
				 			_self.sucFuc();
				 		}
				 		_self.isFinsh=true;
				 	}
	 		});
	 		_self.addListener('keyup', function(oEvent){
	 			var oEvent =oEvent || window.event;					
					if(_self.checkResult(_self.rightKeys,_self.curKeys) && _self.isFinsh){		
						//完成按键,又取消的事件
						if(_self.cancelFuc){
				 			_self.cancelFuc();
				 		}
					}

					_self.curKey=_self.remove(_self.curKeys,oEvent.keyCode);
					_self.isFinsh=false;
	 		});
	 	},
	 	arrayContain:function(arr,val){//判断数组中是否包含某个元素
					return (arr.indexOf(val) == -1) ? false:true;
			},
			checkResult:function(json,arr){ //判断用户是否按下监听的所有按键
				for(var i in json){
					 if(arr.indexOf(json[i])==-1){
						 return false;
					 }
				 }
				return true;
			},
			remove:function(arr,val) { //从数组中移除某个元素			
				var index = arr.indexOf(val); 
				if (index > -1) { 
					arr.splice(index, 1); 
				} 
				return arr;
			},
			getNextKey:function(){ //获取下一次按键对应的ascii码
				for(var i in this.rightKeys){
					if(this.curKeys.indexOf(this.rightKeys[i])==-1){
						 return this.rightKeys[i];
					 }
				}
				return null;
			},
			addListener:function(ev,fn,bool){ //事件绑定
			 if (document.attachEvent) { 
			 document.attachEvent('on' + ev, fn); 
			 }else{ 
			 document.addEventListener(ev,fn,bool); 
			 } 
			}

	 }
	 dqKeys.fn.init.prototype = dqKeys.fn;
 		window.dqKeys = window.$$= dqKeys;
	 })();

 //1.测试
	dqKeys({'a':65,'b':66},true,function(){
									console.log('okey');
								},function(){
									console.log('cancel');
								}).listenkeys();

	//2.测试
	var dqKeys=new $$({'c':67,'d':68},false,function(){
									console.log('keys down ');
								},function(){
									console.log('keys cancel');
								});
	dqKeys.listenkeys();
	</script>

热心网友 时间:2022-04-24 04:48

事件监听的意思就是为某一个事件准备一个函数(方法),如果该事件被触发了就执行函数,比如:xxx.onclick = fn。用fn监听着onclick。
希望对你有帮助

热心网友 时间:2022-04-24 06:06

某一个事件,它也许会发生,也许不会发生,并且也没有特定的发生时间,那么,想要在事件发生时执行某个动作,就需要*,监听此事件是否发生。。。O(∩_∩)O追问理论是看懂了,能不能举个例子,到底*有什么实际的用处。。。谢谢了丫,感谢

热心网友 时间:2022-04-24 07:41

void update(){
if(1==1){
Debug.Log("监听到了");
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo闪电手柄没法一键连招 vivo闪电游戏手柄如何设置最佳_vivo闪电游戏手柄设置教程 switch跳舞的游戏叫什么 量子特攻怎么使用灌木 量子特攻量子魔方有什么用 量子技能介绍 量子特攻怎么换技能介绍_量子特攻怎么换技能是什么 量子特攻战斗中更换时装和机仆技能方法介绍 量子特攻如何设置快捷机仆技能_量子特攻设置快捷机仆技能方法介绍_百度... 换新显卡,显示器不亮!DVI-D无信号 怎么回事大佬棒棒忙? 求大佬带飞,电脑相关问题 抖音号异地登录会跳实名 电子琴白键36个 黑键25个想问问怎么标上1234567 不是学电子琴的 只是想自己练练谢谢 怎么区分22键电子琴的音调 32白键22黑键的电子琴 电子琴指黑键指什么【22个白键丶15个黑键】 有没有22白键,15黑键的电子琴怎样标数字 电子琴白键盘22个,黑键15个,每个键是什么意思 电子琴上面有22个白键15个黑键请问各代表什么 土地租赁合同没有到期想解约怎么办 农民取消土地租用合法吗 签订土地租赁合同注意事项有哪些合同解除的情形有哪些? GTA5电脑需要什么配置? 通常所说的64位机指的是计算机CPU 的什么 关于gta5的配置问题 求一台能玩gta5的最低台式配置,大概要多少钱? 64位机指的是计算CPU的什么 玩GTA5 pc 台式电脑需要什么配置 64位机的概念 为什么U盾在换过电脑后就不能用了? 材料五:我是一名初中二年级的班主任,临近升初三,有一些学生的行为和想法让我? 读哈佛家训有感英语翻译 五保户就医没有钱垫付怎么办? 五保户看病住院要钱吗 五保户有工资还享受看病不花钱的待遇吗 魅族Pro6plus黑屏不开机不显示主板维修多少钱 驾照考试科目三补考怎么收费 我第2次补考 教练要收500快 我就郁闷了 怎么要那么多 姓刘的女孩可以叫什么 五分钟左右的生命的主题演讲稿 事业与爱情演讲稿五分钟 怎样做正宗广式腊肉 结婚九天叫九是什么意思? 求王者的情侣名她叫天行墨轶 最好4个字 结婚做单九是什么意思 一个人,别人叫他老九什麼意思? 帮忙起个问道王者名字 高手的来 要4字1个符合左右或3字2符合 我排九,家里人村里人个个都叫我大九,什么意思,请问一下 成语三叫九什么 “九霄”是什么意思? 今年叫什么九牛耕地,是什么意思?哪2021年呢? 古时候都叫皇帝为九五之尊 九五是什么意思?