jsevent 前端js之event事件(一)
大家好,今天小编来为大家解答jsevent这个问题,前端js之event事件(一)很多人还不知道,现在让我们一起来看看吧!
如何在js代码中,如何获取event
event是事件对象,比如你按了某个键(或者单击等,反正能触发事件的),那你在处理时候可能会需要一些信息,比如说是哪个元素被触发的,这个元素也就是你所问的event.srcElement(事件的源对象),通过它可以得到事件的对象,如果你是按键事件如keyup,keydown,那么在event.keyCode会得到这个键的ascii码,如果是鼠标事件,可能还会有当前鼠标的坐标等等,总之,这个对象里面包含了事件发生时的各种数据。
前端js之event事件(一)
前言:有些事情看上去简单甚至于平淡无奇,比如说爱情或者我们的生活可实际上却很复杂。js里面的event也是一样,不信就打印一下一个平淡无奇的onclick里面包含的event,只要在方法内传入参数event,或者e,还有ev然后打印,你就会发现一个新的天地。
核心内容:多种事件的运用场景解析
开始了
1吹牛逼
2吹牛逼
3也许我别来,你自然无恙
A:复杂多样的鼠标事件
应用:鼠标事件很多,平时用个点击就以为用过那就大错特错了,鼠标事件不仅有原生的点击,双击,移动,进入,移出,悬浮,可以打印event里面的type查看,还有一些比如jq封装的事件,这些事件而且会相互触发,比如移动move是最容易被其他事件触发,或者原生的拖拽事件,不仅有自己的事件,而且会触发元素上的很多其他事件。
B:为什么会这样呢?
解析:第一本身不同事件类型但是相近的鼠标操作就会同时触发,第二在多层dom结构中的事件,由于本身事件的冒泡机制,由最底层的元素向上冒泡,到父元素到document到window,以至于类似事件不同方法但是同时触发
C:怎么解决
办法:比如现象一:只想触发最底层的元素的点击事件,不触发其父元素的点击事件,解决方案阻止冒泡。现象二:类型相近事件相互触发,导致方法重复执行,解决方案在易促发的事件的方法中可以加入条件判断,是否已经执行过相同操作,如果有要么直接return,如果还有其他操作判断,可以将可能重复的那个操作进行重置。现象三:原生方法事件以及简单事件相互交叉影响导致最后鼠标事件失灵,定义的方法不能执行,页面不可控制,解决方案单个功能实现后进行方法设为null如dom.onclick=null,然后设置dom对象释放捕获。
event事件实在太多太复杂了,正如人生一样,可是有时候多一点细心多一点耐心,没事多打打断点和测试,我们会看得更加清晰,正如我若别来,你自然无恙,越是纠结,越是沉沦,往往简单最好。
事件人生,人生事件,简单复杂,复杂简单,一正一反,经历了自然会成长,花香了自然蝶飞舞。
js中的eventType有几种
有很多种,下面列举几种:
onClick IE3|N2|O3鼠标点击事件,多用在某个对象控制的范围内的鼠标点击
onDblClick IE4|N4|O鼠标双击事件
onMouseDown IE4|N4|O鼠标上的按钮被按下了
onMouseUp IE4|N4|O鼠标按下后,松开时激发的事件
onMouseOver IE3|N2|O3当鼠标移动到某对象范围的上方时触发的事件
onMouseMove IE4|N4|O鼠标移动时触发的事件
onMouseOut IE4|N3|O3当鼠标离开某对象范围时触发的事件
onKeyPress IE4|N4|O当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象]
onKeyDown IE4|N4|O当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象]
onKeyUp IE4|N4|O当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象]
js中fireEvent和onclick的区别
DOM的fireEvent和onclick(这只是个代表)有以下区别:
1. onclick需要DOM真正添加了onclick事件,否则会报“对象不支持此属性或方法”错误
2. onclick不会引起IE的冒泡过程,而fireEvent会引起冒泡,fireEvent更贴近用户真实的行为触发
3.由第二条得出,fireEvent在即使DOM没有click事件也可以fireEvent,而不会报错(更贴近用户真实行为)
最后可以拿下面的代码测试:
<ul onclick='alert(event.srcElement.innerHTML);'><li id='id1' onclick='alert(1);'>i am one;</li><li id='id2'>i am two;</li><li id='id3'>i am three;</li></ul><button onclick='document.getElementById("id1").onclick();'>click me!</button><button onclick='document.getElementById("id1").fireEvent("onclick")'>fireEvent!</button>
原文:http://www.js8.in/731.html
感谢您花时间阅读本文!我们希望通过对jsevent的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。