JS事件

363 阅读4分钟

js事件

一、事件类型

JavaScript可以处理的时间类型分为三种:键盘类型、鼠标类型、HTML类型。

不过,需要注意的是想要触发事件必须得在事件名称前 +“on”。

语法为:on+事件名称

举例:click事件,onclick

1、鼠标事件

常用的鼠标事件:

event事件名称描述
onload页面加载时触发
onclick鼠标点击时触发
onmouseover鼠标滑过时触发
onmouseout鼠标离开时触发
onfoucs获得焦点时触发
onblur失去焦点时触发
onchange域的内容改变时发生
onsubmit表单中的确认按钮被点击时发生
onmousedown鼠标按钮在元素上按下时触发
onmousemove在鼠标指针移动时发生
onmouseup在元素上松开鼠标按钮时触发
onresize当调整浏览器窗口大小时触发
onscroll拖动滚动条滚动时触发

2、键盘事件

  • onkeydown:在用户按下一个键盘按键时发生、
  • onkeypress:在键盘按键被按下并释放一个键时发生
  • onkeyup:在键盘按键被松开时发生
  • keycode:返回onkeydown、onkeypress或onkeyup。

3、HTML事件

onload:当页面完全加载后在window上面触发,或当框架集加载完毕后在框架集上触发;

onunload:当页面完全卸载后在window上面触发,或当框架集卸载后在框架集上触发;

onselect:当用户选择文本框(input或textarea)中的一个或多个字符触发;

onchange:当文本框(input或textarea)内容改变且失去焦点后触发;

oninput:输入;

onfocus:当页面或者元素获得焦点时在window及相关元素上面触发;

onblur:当页面或元素失去焦点时在window及相关元素上触发;

onsubmit:当用户点击提交按钮在

元素上触发;

onreset:当用户点击重置按钮在元素上触发;

onresize:当窗口或框架的大小变化时在window或框架上触发;

onscroll:当用户滚动带滚动条的元素时触发;

二、js事件与jquery事件的区别

一、入口函数的不同

  1、js:window.onload = function(){内部放js}   

  实质就是一个事件,拥有事件的三要素,事件源,事件,事件处理程序。等到所有内容,以及我们的外部图片之类的文件加载完了之后,才会去执行。只能写一个入口函数;

  2、jQuery:(function())或者(function(){})或者(document).ready(function(){})是在 html所有标签都加载之后,就回去执行,可以写多个;

二、获取元素的方式不同

  1、js:常用的以下几个,除了id,其他的结果都是伪数组;

  2、jQuery:$(" ")通过和css雷同的选择器方式来获取元素。得到的是jquery对象(dom元素的数组,外加其他一些成员)。即使写的是id,唯一的,得到的对象都不是单一的;

  本质上jquery方式和qs方式都是获取DOM数组, 只不过jquery会多一些其他成员,DOM数组的每一个成员注册事件不能像jquery一样直接注册, 必须分别给每个元素注册;

三、DOM对象和jquery对象的相互转换 

  1、jQuery对象转换成DOM对象,方式一:(“#btn”)[0],方式二:(“#btn”).get(0)得到dom对象;

  2、eq(0)得到jquery对象

  DOM对象转换成jQuery对象:

  $(document) -> 把DOM对象转成了jQuery对象

  var btn = document.getElementById(“btn”);

  btn -> (btn)(btn);(this)

  Jquery得到的元素类型都是对象,内容是伪数组,无论是不是唯一的元素;

四、事件处理程序不同

  1、js:document.getElementById(“id”).onclick = function(){ // 语句 }

  document.getElementById(“id”).addEventListener("click",function(){})

  onclick,onfoucs,onblur,fouce(自动获得),select(自动选择文本域内容),onmouseover,onmouseout,

  oninput/onpropertychange用户输入事件,onchange(下拉菜单select内容发生改变时发生事件,如果内容为几,那么做出什么反应),

  2、jquery:$(“#id”).click(function(){     // 语句   });

三、事件对象

在触法DOM上的某个事件时、会产生一个事件对象event,这个对象中包含着所有与该事件有关的信息。

一、event的属性
属性作用
timeStamp返回事件生成的日期和时间
bubbles返回布尔值,指示事件是否是起泡事件类型
button返回当事件被触发时,哪个鼠标按钮被点击
pageX光标相对应于该网页的水平位置
pageY光标相对应于该网页的垂直位置
screenX光标相对应于该屏幕的水平位置
screenY光标相对应于该屏幕的垂直位置
targent该事件被传送到的位置
type事件的类型
clientX光标相对于该网页的水平位置
clientY作用光标相对于该网页的垂直位置
二、事件对象方法

事件冒泡默认行为是传递冒泡,这样就会造成不必要的事件被触发,如何让不必要的事件被触发,就需要阻止冒泡的行为,事件对象提供了阻止冒泡的方法:

方法描述
stopPropagation()阻止冒泡
prevent Default()阻止默认事件