JS事件

315 阅读4分钟

JS事件(常用)

网页中的每个元素都可以产生某些可以触发JavaScript函数的事件。比如说,我们可以在用户点击某按钮时产生一个onclick事件来触发某个函数。事件在HTML页面中定义。

注意:事件通常与函数配合使用,当事件发生时函数才会执行

FA0F591C1C75E3F1A9D15740BEB3B17A.jpg

一.事件类型

  • JS事件可以的处理的事件类型为:鼠标类型、键盘类型和HTML类型
  • 注意:所有的事件处理函数都由两个部分组成、on+事件名称
  • 例如:click事件,处理函数就是onclick!

1.常用的鼠标事件

onclick单击鼠标左键触发
ondbclick双击鼠标左键触发
onmousedown单击任意一个鼠标按键时触发
onmousemove鼠标在某个元素上移动时持续触发
onmouseout鼠标指针移出一个元素边界时触发
onmouseup松开鼠标任意一个按键触发
onmouseover鼠标指针移到一个元素上时触发

2.键盘事件

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事件和jqurey事件的区别

1.本质区别:

  • js都知道是网页脚本语言,类似Java是一种开发常用语言;
  • jQurey是基于JS语言封装出来的一个前端框架;
  • 所以最本质的区别就是JS是一种语言,而jQurey是基于该语言的一种框架

2.用法差别:

1、jQuery与js最直观的区别就是外观上jQuery对象比js对象多了"$()"。

2、jQuery与js操作内容的区别:

a.非表单元素(如果是文本就用text方法,如果是html代码就用html方法)

(1).div.text();无参数的情况下是取值
(2).div.text("1111");有参数的情况下是赋值
(3).div.html();无参数的情况下是取值
(4).div.html("1111");有参数的情况下是赋值

b.表单元素

JS:

 (1).div.value;取值;
 (2).div.value = xxx;赋值
 

jQurey:

  (1).div.val();无参数是取值,有参数是赋值。

3.jQurey与JS操作属性的区别:

js里面用来操作属性的方法是:

(1).div.setAttribute("","");——设置属性、修改属性
(2).div.removeAttribute("");——移除属性,引号里面写一个属性名
(3).div.getAttribute();——获取属性

jQurey里面用来操作属性的方法是:

(1).添加属性:div.attr("test","aa");——给这个attr方法加入参数,属性名叫test,属性的值是aa
(2).移除属性:div.removeAttr("test");——移除test这条属性
(3).获取属性:div.attr("test");在attr方法里面直接写入一个属性的名

4.jqurey与JS操作样式的区别:

JS里面操作样式的关键字是style。

(1).div.style.backgroundcolor = "red";——把这个div背景色设置成为了红色。

jQurey里面操作样式的关键字是css。

(1).div.css("background-color","yellow");把这个div的背景色变为黄色

5.jqurey与JS选取元素的区别:

(1).根据ID取元素

JS:取到的是一个DOM对象。

 (1).var div = document.getElementByID("one");
 

jQurey:取到了是一个jQurey对象。

(1).var div = $("#one");——括号里面是根据某个东西来找,相当于一个选择,如果我们要根据ID来找,在样式表里的ID是用#来表示的,所以在这里我们直接带入井号,整句的意思就是根据ID为one的来查找。

(2).根据class取元素,在数组里面如果要取DOM对象使用索引的方式,如果要取jQurey对象使用eq()

JS:取到了是一个数组

 (1).var div = document.ElementsByClassName("test");
 

jQurey:

(1).var div = $(".test");
 

(3).根据name取元素

JS:返回的是一个数组

(1).var bd = document.getElementsByName(uid);

jQuery:的方式是用方括号,属性=一个值,不限制非要根据name来取值,jQuery是根据属性来取元素

(1).$("[name='uid']");

(4).根据标签名取元素

js:返回的也是一个数组

(1)var div = document.getElementsByTagName("div");

jQuery:和样式表里面给所有div加样式的方法一样,在双引号内直接写标签名

(1)$("div");



三.事件对象属性方法

1.事件对象event的属性:

type返回事件的类型 比如click mouseover 不带on
target返回触发事件的对象 标准
srcElement返回触发事件的对象 非标准 IE6-8使用
e.cancelBubble该属性阻止冒泡
e.returnValue该方法阻止默认事件(默认行为)
button声明被按下的鼠标键
clientX/clientY事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置,X时光标相对于该网页的水平位置,Y时作用光标相对于该网页的垂直位置
screenX、screenY鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;X时光标相对于该屏幕的水平位置,Y时作用光标相对于该屏幕的垂直位置
offsetX,offsetY/layerX,layerY事件发生的时候,鼠标相对于源元素左上角的位置
x,y/pageX,pageY检索相对于父元素鼠标水平坐标的整数

2.事件对象常用的方法

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

  • event.preventDefault() :阻止默认行为。

  • event.stopPropagation() :阻止事件冒泡。