JS 事件

400 阅读6分钟

一、JS事件类型

avaScript可以处理的事件类型为:鼠标类型、键盘类型和HTML类型!

注意:所有的事件处理函数都由两个部分组成,on+事件名称。

例如:click事件,处理函数就是onclick!

第一种:鼠标事件

click: 单击鼠标按钮时触发;

dblclick:当用户双击主鼠标按钮时触发;

mousedown: 当用户按下鼠标还未弹起时触发;

mouseup: 当用户释放鼠标按钮时触发;

mouseover: 当鼠标移到某个元素上方时触发;

mouseout: 当鼠标移出某个元素上方时触发;

mousemove:当鼠标指针在元素上移动时触发;

mouseenter: 在鼠标光标从元素外部首次移动至元素范围内触发,不参与冒泡;

mouseleave:鼠标移出;

第二种:键盘事件。

keydown: 当用户按下键盘上任意键时触发,如果按住不放,会重复触发;

keyup: 当用户释放键盘上的键触发;

keypress: 当用户按下键盘上的字符键时触发,如果按住不放,会重复触发;

第三种:HTML事件。

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

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

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

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

input: 输入;

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

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

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

元素上触发;

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

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

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

以上就是这三种事件类型,千万记住事件之前要加“on”;

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

通过《JavaScript 事件参考手册》 和《 jQuery 1.4.1 中文参考》截图对比如下:

54792529_1.gif 仔细观察,会发现jQuery中的事件和javascript中的事件有一个明显区别:javascript中的事件为onclick,那么jQuery中的事件则为click()或click(fn)。其他方法以此类推。

一、本质区别:

1.js都知道是网页脚本语言,类似java是一种开发常用语言;
2.jQuery是基于js语言封装出来的一个前端框架;
所以最本质的区别就是js是一种语言,而jQuery是基于该语言的一种框架。除却最本质的区别还有一些用法上的差别。

二、用法区别:

1.外观上jQuery对象比js对象多了"$()"一层马甲,这是最直观的区别;

2.操作内容

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

      例:div.text();——无参数的情况下是取值

      div.text("aaaa");——有参数的情况下是赋值

      div.html();——无参数的情况下是取值

      div.html("aaaa");——有参数的情况下是赋值

②.表单元素

      JS:div.value;——取值;div.value = xxx;——赋值

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

3.操作属性

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

div.setAttribute("","");——设置属性、修改属性

div.removeAttribute("");——移除属性,引号里面写一个属性名

div.getAttribute();——获取属性

JQUERY里面用来操作属性的方法

添加属性:div.attr("test","aa");——给这个attr方法加入参数,属性名叫做test,属性的值是aa

移除属性:div.removeAttr("test");——移除test这条属性

获取属性:div.attr("test");——在attr方法里面直接写入一个属性的名就可以了

4.操作样式

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

例:div.style.backgroundColor = "red";——把这个div的背景色设置成为了红色

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

例:div.css("background-color","yellow");——把这个div的背景色变为黄色,在这里CSS里面所有的样式和css样式表里面的样式是一模一样的没有任何变化

JS操作样式的方法只能获取内联样式,不能取内嵌的和外部的!!!!!

JQUERY操作样式的方法可以是内联的也可以是内嵌的。

三、 事件对象(事件对象常用的属性和方法)

1、type

事件的类型,如onlick中的click;

2、srcElement/target

事件源,就是发生事件的元素;

3、button

声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键)

4、clientX/clientY

事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是 0,所以在IE中,要想得到事件发生的坐标相对于文档开头的位置,要加上document.body.scrollLeft和 document.body.scrollTop)

5、offsetX,offsetY/layerX,layerY

事件发生的时候,鼠标相对于源元素左上角的位置;

6、x,y/pageX,pageY

检索相对于父要素鼠标水平坐标的整数;

7、altKey,ctrlKey,shiftKey等

返回一个布尔值;

8、keyCode

返回keydown何keyup事件发生的时候按键的代码,以及keypress 事件的Unicode字符;(firefox2不支持 event.keycode,可以用 event.which替代 )

9、fromElement,toElement

前者是指代mouseover事件中鼠标移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素;

10、cancelBubble

一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素;(e.cancelBubble = true; 相当于 e.stopPropagation();)

11、returnValue

一个布尔属性,设置为false的时候可以组织浏览器执行默认的事件动作;(e.returnValue = false; 相当于 e.preventDefault();)

12、attachEvent(),detachEvent()/addEventListener(),removeEventListener

为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在
attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素;

13、screenX、screenY

鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;