保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

怎么创建JavaScript自定义事件

  怎么创建自定义事件
  创建自定义事件听起来很困难,但是只需要下面简单的一行代码即可。constmyEventnewEvent(myCustomEvent)
  你可以通过事件构造函数创建一个新的Event对象。在最基本的形式中,你只需要将一个字符串传递给构造函数,这个字符串就是你定义的事件名称。为了监听这个事件,你可以将该事件监听器添加到你要监听的元素上,如下:document。addEventListener(myCustomEvent,e{console。log(e)})
  最后一步,你需要做的事,触发创建并正在监听的事件。document。dispatchEvent(myEvent)
  这就需呀dispatchEvent函数了。每个元素都有这个方法,你要做的就是将你创建的对象传递给它。
  如果我们将上面讲的组合在一起,我们就得到了一个基本的事件,这个事件在我们的document元素触发,相关的事件内容会被打印出来。{isTrusted:falsebubbles:falsecancelBubble:falsecancelable:falsecomposed:falsecurrentTarget:nulldefaultPrevented:falseeventPhase:0path:〔document,window〕returnValue:truesrcElement:documenttarget:documenttimeStamp:54。69999998807907type:myCustomEvent}
  图中是这个事件对象的最基本形式。它包含大量信息,最重要的部分我这里突出显示了。
  isTrusted属性仅指该事件是由用户交互触发,还是由自定义JavaScript代码触发的。例如,当用户单击按钮时,事件将isTrusted设置为true,而我们自定义的事件会将其设置为false,因为该事件是由JavaScript触发的。
  target指调用dispatchEvent函数的元素。
  type指事件的名称。事件定制
  你可能注意到了,上面的详情中有属性bubbles,cancelable和composed属性。这些实际上,在我们创建自定义事件时可以配置的选项。constmyEventnewEvent(myCustomEvent,{bubbles:true,cancelable:true,composed:true})冒泡bubbles
  当事件触发后,bubbles属性决定这个事件是否可以通过html进行冒泡。这个值默认为false,这意味着不可以进行冒泡行为,如果你想事件调用父HTML元素,你可以将其设置为true。constbubbleEventnewEvent(bubbleEvent,{bubbles:true})constdefaultEventnewEvent(defaultEvent,{bubbles:false})document。addEventListener(bubbleEvent,(){Thiswillgetcalledsincetheeventwillbubbleuptothedocumentfromthebuttonconsole。log(Bubble)})document。addEventListener(defaultEvent,(){Thisnevergetscalledsincetheeventcannotbubbleuptothedocumentfromthebuttonconsole。log(Default)})constbuttondocument。querySelector(button)button。dispatchEvent(bubbleEvent)button。dispatchEvent(defaultEvent)可取消cancelable
  cancelable属性决定事件是否可以通过调用e。preventDefault()取消。默认是false不可以。如果该属性是true值,你可以调用e。preventDefault()方法。e。preventDefault()会将事件defaultPrevented属性设置为true。constcancelableEventnewEvent(cancelableEvent,{cancelable:true})constdefaultEventnewEvent(defaultEvent,{cancelable:false})document。addEventListener(cancelableEvent,e{e。preventDefault()console。log(e。defaultPrevented)True})document。addEventListener(defaultEvent,e{e。preventDefault()console。log(e。defaultPrevented)False})document。dispatchEvent(cancelableEvent)document。dispatchEvent(defaultEvent)组合composed
  composed属性决定事件是否可以通过影子dom向上传播。默认值是false。该属性仅在你使用自定HTML元素和影子DOM的时候才适用,它所做的是允许事件在影子DOM外面传播。
  如果你想在影子DOM中触发的事件可以在影子DOM外被捕捉到,就将其设置为true。
  没听懂没关系,后面学着学着就懂了给事件传递自定义数据
  当你使用自定事件时,你希望自定义的数据传递给你的事件。使用newEvent构造函数是不可能的,这也就是为什么会有第二种创建事件的方法。constmyEventnewCustomEvent(myEvent,{detail:{hello:World}})
  CustomEvent构造函数取代Event构造函数。这与newEvent的工作方式相同,但你可以将detail属性以及bubbles,cancelable和composed属性一起传递给第二个参数。detail属性中你设置的内容都会传递给事件监听器。constmyEventnewCustomEvent(myEvent,{detail:{hello:World}})document。addEventListener(myEvent,e{console。log(e。detail){hello:World}})document。dispatchEvent(myEvent)命名约定
  在我们讲自定义双击事件的例子前,我想先讲讲命名约定。你可以为自定义事件命名任何你想要的名字,但是还是遵循命名约定,以更方便使用自己的代码。最普遍的命名约定事件,是为事件添加custom:前缀。
  custom:以区分自定义事件和本身的事件,而且,如果JavaScript添加与你的事件同名的新事件,它还可以确保你的代码不会中断。
  举个例子,如果JavaScript添加了一个名为doubleclick事件,然后你已经在时候doubleclick自定义事件了,那么你会遇到问题,因为你自定义代码将触发该事件,并且浏览器也会尝试触发它自己的副本。AlwaysusesomeformofnamingconventionconstmyEventnewEvent(custom:doubleClick)双击事件
  在这个例子中,我们将创建一个双击的事件,只要你在短时间内单击一个元素,就会触发该事件。该事件还会将按钮单击之间的总时间作为自定义数据传递。
  首先,我们需要创建一个正常的单击事件监听器来确保是否有双击。constbuttondocument。querySelector(button)constMAXDOUBLECLICKTIME500letlastClick0button。addEventListener(click,e{consttimeBetweenClickse。timeStamplastClickif(timeBetweenClicksMAXDOUBLECLICKTIME){lastClicke。timeStampreturn}TODO:Doubleclickhappened。Triggercustomevent。lastClick0})
  上面的代码使用timeStamp属性来确保按钮上单击事件之间的时间。如果点击之间的时间超过500毫秒。
  则会立刻返回并更新lastClick的值。一旦我们在500毫秒内点击了两次,我们将通过if检查并触发我们的双击事件。为此,我们需要创建我们的事件并调用它。constbuttondocument。querySelector(button)constMAXDOUBLECLICKTIME500letlastClick0button。addEventListener(click,e{consttimeBetweenClickse。timeStamplastClickif(timeBetweenClicksMAXDOUBLECLICKTIME){lastClicke。timeStampreturn}TODO:Doubleclickhappened。Triggercustomevent。lastClick0})
  对于我们自定义的事件,我们将所有选项都设置为true,因为默认情况下,单击事件将所有这些属性设置为true,而且我们希望双击的行为类似于正常的单击。
  我们也将timeBetweenClicks传递到detail选项中。
  最后,我们在事件的目标上调度事件,这里是按钮元素。我们剩下要做的最后一件事就是监听事件。onstbuttondocument。querySelector(button)constMAXDOUBLECLICKTIME500letlastClick0button。addEventListener(click,e{consttimeBetweenClickse。timeStamplastClickif(timeBetweenClicksMAXDOUBLECLICKTIME){lastClicke。timeStampreturn}constdoubleClickEventnewCustomEvent(custom:doubleClick,{bubbles:true,cancelable:true,composed:true,detail:{timeBetweenClicks},})e。target。dispatchEvent(doubleClickEvent)lastClick0})
  我们刚刚向按钮田间了一个简单的事件监听器,它将打印出DoubleClick之间的时间。总结
  自定义事件是JavaScript中处理手势和双击事件的好方案,最重要的是,他们非常容易实现和使用。

2018物流实习报告范文中国加入wto后,随着中国经济的快速发展和经济体制改革的不断深化,中国物流产业出现了加速发展的趋势。下面小编整理了2018物流实习报告范文,希望对大家有所帮助!一:公司简……作文难忘的中秋赏月活动中秋月儿圆,花田野趣浓,迎寒祭月忙,月饼瓜果甜!9月11日(阴历八月十四)下午四点开始,在奥林匹克森林公园北园的花田野趣景区,中关村二小乐团的部分同学及其他同学,还有家长……我眼中的秋天小学作文情人眼里出西施,在我眼中秋天是美丽的,我眼中的秋天是漂亮的,我眼中的秋天是多姿多彩的风景画。是啊,秋天就像是我的小情人一般。炎热的夏天过去了,一阵阵秋风吹来,别提有多凉爽……给转学同学的一封信作文800字转学的同学们:你们还好吗?虽然我们只相处了三年的时间,但是这三年的时间里,我觉得很快乐,我们在一起学习,一起玩耍。或许你们离开这个学校后可能就会忘记我,这个被你们称……10年后回故乡小学作文10年后回故乡小学作文1叮咚,您本次所坐的航班啊十年了,我已离开家乡10年了,我在电视上听说南昌的科技发展不错嘛!啊!爸爸和妈妈来了,我一定要赶紧迎接他们。在一阵激动的问……校长的一份建议书尊敬的校长:您好!冒昧给您写这封建议书,请您在百忙中抽空看一看。您是学校的校长,每天有很多事要做。您为我们呕心沥血地工作,使得学校井井有条。但是,我觉得学校在一些细节方面……初一期末考试作文谁的功劳大铅笔、橡皮和转笔刀是三兄弟,他们共同住在文具盒母亲的肚子里,每天陪着小主人学习,生活过得舒适又惬意。前不久,小主人在全校书法比赛中获得了第一名的好成绩,三兄弟高兴极了。那……作文故乡800字我心中总是有着自己不愿承认的孤寂,喜欢用笔尖划出温暖的轮廓,以此得到灵魂的慰藉。我是如此害怕这个世间。但有一个地方却会给我一种慰藉,觉得它和我心无比贴切,那里是就是我的故乡,我……理想当一名飞行员作文理想是石,敲出星星之火;理想是火,点燃熄灭的灯;理想是灯,照亮深夜的路;理想是路,引我走向黎明。我的理想是当一名飞行员,这个理想就在我的心中慢慢生根、发芽,这个理想来源于……山西平遥古城导游词作文山西平遥古城导游词诸位游客,大家好。我国历史文化名城平遥就要到了,右前方那高耸的砖墙就是我国现存较为完整的四座古城池之一平遏城。1997年12月3日,联合国教科文组织世界……有关写改变自己作文三篇泰戈尔说:不要因为你的胃口不好,而去责怪你的食物。那么,不要因为自身素养不好,而去挑剔你所处的环境。这说明了改变的重要性,下面是小编给大家介绍的改变自己作文,欢迎阅读。改变自己……2017鸡年新春拜年话春风洋溢你,家人关心你,爱情滋润你,财神系着你,朋友忠于你,我这祝福你,幸运之星永远照着你。祝鸡年大吉大利!1)春节你要生活超越小康,常葆福乐安康,气魄强健如钢,甜蜜入对……
我难忘的自信作文有一件事至今令我难忘,那就得从小记者团发来邀请信的时候说起在一个阳光灿烂的日子里,妈妈对我说:小记者团发来了一张邀请信上选拔小记者的,要不要去?我说:我当然想去,可是我胆……那是一次勇敢的尝试作文300字暑假到了,爸爸带我到美丽的云南去旅游,在旅途中,我遇到了可怕的ldquo;丛林飞跃rdquo;游戏。ldquo;丛林飞跃rdquo;分为三关。第一关是一个人吊在铁索上直接……一篇就够了,MySQL索引(建议收藏)目录1。介绍2。索引的原理2。1索引原理2。2索引的影响2。3磁盘IO与预读3。索引的数据结构4。聚集索引与辅助索引4。1聚集索引4。2辅助索引5。MySQL索引管理5。1功能……小学五年级期末考试反思总结作文期末考试结束了,我所剩下的中学生活随着一次又一次的考试逐渐变短,下面是小编整理的期末考试反思总结作文,欢迎大家阅读!【期末考试反思总结作文1】期末考试结束了,我所剩……一个精美的日记本小学作文放暑假之前,李老师发给我了一个精美的日记本,它的里面是横格子的,崭新崭新的。日记本的外皮是两个花形纽扣组成的,周围用黑兰边包围起来,其中一个纽扣下面还画着一颗粉红的心,并……年味作文1000字熹微晨光透过窗纱,掀开了新春的序曲。起床、穿衣,一如既往的稀疏平常,唯一别开生面的也只是那喜庆的新衣,守护者仅存的新年仪式感。出门走在熙熙攘攘的大街上,少了昔日大声的问候……诚信遇上宽容五年级作文校园门口的旁边,有一家粉条店,店主是一位中年阿姨,中等个头,黝黑的面颊,凹陷的眼睛显得无精打采,看她那粗糙的手就知道,她是个生活简朴的人,虽然如此但阿姨总是热情的招待每一位小客……精选科技小学作文600字合集八篇在平时的学习、工作或生活中,大家都写过作文,肯定对各类作文都很熟悉吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题。你知道作文怎样才能写的好……我的水晶魔球的作文我有一个来之不易的水晶魔球。它可是两年前我和爸爸游玩海底世界时,通过软磨硬泡才得来的高级灯饰工艺品。这个水晶魔球是造型优美,看上去圆溜溜的。它是情趣性、观赏性、装饰性为一……阿里巴巴对平台商品收税达5,怪不得网上的商品也不便宜了截至2021年3月31日止的12个月,阿里年交易金额突破8万亿元人民币,收入达到约7172亿元,剔除云计算600亿元,预计阿里巴巴平台对商品收税5。阿里对商家的全部扣点达……花颈鸽读书笔记《花颈鸽》读书笔记1在《花颈鸽》这本书中,我遇到了心中的小英雄,即一只有着彩虹般脖颈的鸽子花颈鸽。这本书结合令人惊叹的自然故事和一段荡气回肠的冒险历程,讲述了花颈鸽……神奇的树苗作文有一天晚上,我躺在床上睡觉,还做了一个奇怪的梦。在梦中我看到自己已经三十多岁了。正在发明生产出一种神奇的树苗。那树苗上面有一个红色的按钮。只要我按一下红色的按钮,那树苗就……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网