JavaScript函数中event参数的使用-----function(event){}

13 篇文章 0 订阅
订阅专栏

什么是event?

Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 事件通常与函数结合使用,函数不会在事件发生前被执行!

  • 看例子:
    现有ul以及多个li元素,通过事件委托,给ul绑定点击事件,当我们点击某个li元素时,输出所点击li元素的相关信息。
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<ul class='list'>
    			<li>1</li>
    			<li>2</li>
    			<li>3</li>
    			<li>4</li>
    		</ul>
    		<script type="text/javascript">
    			var ul = document.querySelector('ul');
    			//事件委托:将事件处理程序绑定在父元素上,通过冒泡原理设置每个子节点,
    			//只操作了一次DOM,提高了程序的性能;
    			ul.addEventListener('click',function(event) {
    				var lis = document.querySelectorAll('li');
    				for(var i=0; i<lis.length; i++){
    					lis[i].style.backgroundColor = 'white';
    				}
    				event.target.style.backgroundColor = 'pink';
    				console.log(event);
    			})
    		</script>
    	</body>
    </html>
    
    
    假设我们点击了第一个li元素,通过console.log(event);语句,输出event参数的相关信息,如下图所示:在这里插入图片描述
  • 从图片中可以看出来,event中包含了事件触发时的参数,比如click事件的event中包含着pageX、pageY;keydown事件中包含着keyCode等
  • 在IE浏览器中,event是全局的,需要通过window.event来获取,在其他浏览器中,event都是作为参数传入的。
    考虑到浏览器兼容问题,我们应该这样获取event对象:
    event = window.event||event;
    

当function函数中没有传入event参数时,我们应该如何在函数内部使用event呢?

  • 如果函数本身没有传入参数:(参照最上面的例子)
    <script type="text/javascript">
    	var ul = document.querySelector('ul');
    	ul.addEventListener('click',function() {
    		var lis = document.querySelectorAll('li');
    		var event = window.event || arguments[0];
    		for(var i=0; i<lis.length; i++){
    			lis[i].style.backgroundColor = 'white';
    		}
    		event.target.style.backgroundColor = 'pink';
    		console.log(event);
    	})
    </script>
    
    当点击第一个li元素的执行结果:在这里插入图片描述
  • 如果函数本身传入了参数,则需使用以下语句获取event:
     var event = window.event || arguments.callee.caller.arguments[0]
    
    关于arguments、callee、caller的相关使用可以参考这篇文章
    JavaScript函数中arguments、callee、caller的使用

event.target的使用

  • 首先我们来看看target属性中都包含哪些值:(假设我们点击了第一个li元素)在这里插入图片描述
    可以看出target 事件属性可返回事件的目标节点(触发该事件的节点),是目标节点的属性集合。
  • 什么时候使用target属性呢?
    如文章最开始的例子,当我们使用事件委托,给ul绑定点击事件,当我们点击某个li元素时,需要输出所点击li元素的相关信息,这时就可以使用target来获取被点击元素的相关信息。
  • 假设我点击了第二个li元素:在这里插入图片描述
    1、我们使用console.log(event.target);语句,看看发生了什么:在这里插入图片描述
    此时,在控制台中输出了触发点击事件的节点(第二个li元素)
    2、使用console.log(evetn.target.innerHTML);
    在这里插入图片描述

event.currentTarget的使用

  • currentTarget : 指的是绑定了事件监听的元素,当我们使用console.log(event.currentTarget);,会输出什么?在这里插入图片描述
js-event事件
01-14
EventJavascript的重要事件,event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作,下面是对这个对象的简单总结,希望跟大家一起学习
event-triggered-netlify-function:演示如何使用事件触发的 Netlify 函数
08-04
这是一个用 Vanilla JS 制作的小演示 :red_heart: 展示如何使用事件触发的 Netlify 函数。 该站点部署在 Netlify 上,当部署失败时,该功能会获取随机 GIF 并将其发布到 Slack 频道。 本地开发 如果您想在本地尝试...
js函数传入event参数
热门推荐
sinat_27801935的博客
07-13 2万+
event是事件的参数啊!在event包含了事件触发时的参数,比如click事件的event包含着.e.pageX,e.pageY,keydown事件包含着ev.keyCode等,在ieevent是全局的可以通过window.event来获取,在其他浏览器都是作为参数传入的。 所以好多事件函数都是这样写: mydiv.onclick = function(ev){ if(!ev
JavaScriptEvent对象用法
robyjeffding的专栏
04-26 1271
JS对于Event对象,大家都不陌生,其本身属性和方法在做页面特效或者特殊处理能够大大地派出用场,现整理一下EVENT对象相关属性和方法使用Event属性和方法:<br /><br />1. type:事件的型,如onlick的click;<br /><br />2. srcElement/target:事件源,就是发生事件的元素;<br /><br />3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下
javascriptevent详解
swingboat
02-23 335
event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。event对象只在事件发生的过程才有效。event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。code&l...
JS函数function(event){}在括号内写个event的意思
大头之家
07-30 2万+
function(event){} event可有可无,它是一个内置参数,加上它是为了规范 function(a){alert(a)} 当不为event时,a就是你要传递的参数 function(a,b){} 同上 有如下Vue.js代码 Vue 测试实例 - 菜鸟教程(runoob.com) Greet var app = new
事件参数event总结(JavaScript
weixin_50053454的博客
02-24 1511
当我们使用属性绑定事件时如果需要事件参数e,需要传入event这个实参。 event 事件信息对象,包含了事件目标和坐标信息 event.type 事件event.target 事件触发目标,谁触发了事件(不确定是谁) event.currentTarget 事件目标本身,谁绑定了事件(总是指向事件目标) this this指向事件目标 == event.currentTarget 关于参数e的坐标问题
javascript-event-keycode-finder:找出javascript的OnKeyDown,OnKeyUp和OnKeyPress事件调用的键码的简单工具
04-29
JavaScript事件是网页交互的核心,尤其是键盘事件,它们在创建动态和响应式的用户界面时起着至关重要的作用。...通过`javascript-event-keycode-finder`这样的工具,开发者可以更轻松地将键盘事件集成到自己的项目
event-driven-functions::metro:通过Salesforce Platform Events在Heroku应用调用javascript函数
04-29
通过在调用javascript函数。 :laptop: :woman::microscope: 该项目是对扩展Salesforce计算功能的新模式的探索。 通过自由共享。 使用风险自负。 :triangular_ruler: :cityscape: :seedling: :check_mark_...
super-simple-netlify-function-example
05-25
在这个目录下,我们可以预期找到源代码文件,如JavaScript函数文件(通常命名为`.js`),可能还有一个`netlify.toml`配置文件来指定Netlify如何处理这些函数,以及可能的测试、README文档等其他资源。 在实际的...
eventlisteners-in-[removed]JavaScript的事件监听器
04-19
JavaScript,事件监听器(Event Listeners)是处理用户或浏览器行为的关键工具。它们允许开发者在特定事件触发时执行相应的代码,如用户点击按钮、滚动页面或输入数据。事件监听器大大增强了网页的交互性,使...
function(event)event详解
weixin_40667613的博客
01-06 4384
一、function(event)event是什么? event对象是个形式参数,代表事件的状态;比如事件在其发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 关于event对象 在触发的事件的函数里面我们会接收到一个event对象,通过该对象我们需要的一些参数,比如说我们需要知道此事件作用到谁身上了,就可以通过event的属性target来获取到(IE暂且不谈),或者想阻止浏览器的默认行为可以通过方法preventDefault()来进行阻止.以下是event对象的一些属性和方法 属性描
JS事件参数对象event
reaaal的博客
07-15 631
事件对象就是用来帮我们获取,在js事件被触发时的一系列有用信息。 事件对象的名称,一般用event,但这不是必须的,可以使用任何合法的变量名。 IE浏览器的事件对象模型跟其他浏览器是不一样的。它需要使用window.event,而且不需要在事件处理函数声明event参数。 鼠标触发事件:比如onclick、onmouseover event.target:获取事件源对象 event.srcElement:获取事件源对象 event.type:获取事件event.clientX:获取当前鼠标在网页上
JavaScript-event参数传递详解
weixin_33842328的博客
11-19 249
onmouseover="over(event)" onmouseout="out(event)" onclick="change(event)" 有很多人纳闷这个event是什么, 是个element对象?一定要用这个event? 这个地方是必须的! 这样写的目的是为了实现IE和FFevent的传递, 因为IEevent是全局的, 公用的, 相当于window.event, ...
js event 对象参数 详细介绍
qq_43720804的博客
12-04 384
js event 对象参数 详细介绍
JavaScript的事件(Event
人多好感动的博客
11-11 300
事件(Event) 事件对象 当响应函数调用时,浏览器每次都会将一个事件对象作为实参传递进响应函数, 这个事件对象封装了当前事件的相关信息 比如:鼠标的坐标,键盘的按键,鼠标的按键,滚轮的方向。。 可以在响应函数定义一个形参,来使用事件对象, 但是在IE8以下浏览器事件对象没有做完实参传递, 而是作为window对象的属性保存 例子: 元素.事件 = function(event){ event = event || window.event; }; 元素.
JS 之 事件Event对象详解(属性、方法、自定义事件)
最新发布
weixin_45092437的博客
06-10 1万+
​ 事件event对象是指在浏览器触发事件时,浏览器会自动创建一个event对象,其存储了本次事件相关的信息,包括事件型、事件目标、触发元素等等。浏览器创建完event对象之后,会自动将该对象作为参数传递给绑定的事件处理函数,我们可以在事件处理函数通过访问event对象的属性和方法,来获取事件的相关信息,并做出后续的逻辑处理。
JavaScript 教程】事件——Event 对象
web前端开发
07-02 727
作者 | 阮一峰概述事件发生以后,会产生一个事件对象,作为参数传给监听函数。浏览器原生提供一个Event对象,所有的事件都是这个对象的实例,或者说继承了Event.pro...
django-eventstream使用
05-26
4. 在模板使用JavaScript 在您的HTML模板,您可以使用JavaScript来处理SSE事件。以下是一个简单的示例: ```html var eventSource = new EventSource("{% url 'sse-view' %}"); eventSource....
写文章

热门文章

  • JavaScript函数中event参数的使用-----function(event){} 7766
  • 在flex布局中,子元素超过容器宽高时,子元素被压缩的解决办法 2750
  • 面试:每发送一个http请求就要建立一个tcp连接吗(非持久连接/持久连接) 2391
  • 数据结构与算法(经典排序)----计数排序 2313
  • HTTP与HTTPS面试题 1662

分类专栏

  • 工作笔记 1篇
  • 数据结构与算法 7篇
  • 前端面试题汇总 8篇
  • 前端复习部分 13篇
  • 计算机网络基础-自顶向下的方法
  • JavaScript学习专栏 2篇

最新评论

  • JavaScript函数中event参数的使用-----function(event){}

    gpy的社区: 引用「evetn」 拼写错误

  • 面试:每发送一个http请求就要建立一个tcp连接吗(非持久连接/持久连接)

    MrTSJH: 每次都要建立一下,创建线程太浪费开销了

  • gitub分支管理:从master上新建开发分支

    开到荼蘼223's: 学到了学到了表情包

  • JavaScript函数中event参数的使用-----function(event){}

    残风_: 有帮助,谢谢!

大家在看

  • elasticsearch实战应用
  • RMA(客户退货流程) 380
  • java计算机毕业设计社区公益服务平台(开题+程序+论文)
  • 某集群管理系统存在任意文件读取漏洞
  • 带你0到1之QT编程:十五、探索QSplitter和QDockWidget的简单应用技巧 334

最新文章

  • gitub分支管理:从master上新建开发分支
  • JavaScript实现优先队列的两种方法
  • 面试:每发送一个http请求就要建立一个tcp连接吗(非持久连接/持久连接)
2021年1篇
2020年33篇
2019年6篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司莆田网站优化如何凌源网站优化惠山区网站优化方式网站排名优化忄金苹果下拉讠塘沽网站关键词优化哪家值得信赖网站优化系统哪桐城网站优化网站的两个物理结构及优化肇庆营销型网站优化方案沂南临沂网站优化网站优化超越对手怎么办惠州外贸网站关键词优化费用容桂网站优化服务小说漫画网站做优化孝感品牌网站优化哪家好南京网站排名优化立即咨询洛阳正规网站优化排名东凤网站seo优化排名网站优化文章人工写厦门网站优化体验优化网站作用保定网站竞价优化业务网站综合优化怎么选宁夏网站优化公司收费多少三台县网站seo优化排名潜山网站优化公司哪家好服装网站优化意见网站优化一般什么价位延安网站优化公司网站关键词优化建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化