js中的事件(event)

从开始学js就不太懂event事件,每次用到的时候去查一查,然后用完很快就又忘了什么是event。唉!今天又看到了,算了,想想还是把它彻底弄明白吧,至少也写个记录。也是在上看到一篇讲解event的文章,写的很直白,竟然向我这种脑子不太好用的人都可以看得懂哈哈。接下来就随着作者张松1366的文章记录一下吧!

(原文出处链接:https://www.jianshu.com/p/f1a463c0c395)


什么是事件:

事件就是系统中的感知器管,它可以通过感知器官发觉到用户此时对它做了什么。

其实事件的原理并非是浏览器的感觉系统,它的本质是一个行为发生时,对另一个行为的回调。

事件的实现(事件绑定):

事件的绑定相当于做计划,绑定在事件上的方法执行了就相当于计划的事发生了,所以一般情况下,事件属性的前面都有”on“,如:ele.onclick, ele.onmousedown, ele.onmouseup, 这里的on,其实就相当于:当什么时候,做计划要早于计划的事件发生。

在用户对浏览器进行操作的时候,浏览器只会感知到并不能作出反应,然后我们可以什么也不让它做,也可以让浏览器作出一定的反应(即:当这个事件发生的时候,运行一个或者多个方法(function),这叫做事件绑定)。想让它做就写一个function形参为e,不给实参。

简单的事件绑定:document.onclick = function(){alert("事件“);}

当然我们也可以不给事件绑定处理方法,也就是说当此事件发生的时候,什么也不需要做,事件常有,而事件上绑定的方法不一定有。我们给页面中的元素的某个事件绑定处理方法的时候。经常还会有一个形式参数e,但是运行的事件,却没有办法传递实参给这个形参e,比如:

function fn (e){}

//标准浏览器中:定义一个形参e,但当事件触发的时候,并没有给e赋实际的值,则浏览器会把”事件“的对象赋给这个形参e,这时这个e是个系统级的对象:事件;

IE中的事件对象是个全局的属性window.event,而标准浏览器的事件对象就是形参e;

IE写法为:window.event,标准浏览器的事件对象,写法为:e。兼容写法为:e = e||window.event;


给一个函数的形参为e或者event,然后不给实参,这时候浏览器就会把”事件“的对象赋给这个形参e,这时这个e是个系统级的对象:事件;

总的来说,event事件是IE中的全局属性,也就是一个对象,它有很多个属性值,

比如:

onabort图像的加载被中断。

onblur元素失去焦点。

onchange域的内容被改变。

onclick当用户点击某个对象时调用的事件句柄。

ondblclick当用户双击某个对象时调用的事件句柄。

onerror在加载文档或图像时发生错误。

onfocus元素获得焦点。

onkeydown某个键盘按键被按下。

onkeypress某个键盘按键被按下并松开。

onkeyup某个键盘按键被松开。

你可能感兴趣的:(js中的事件(event))