jQuery的事件编程

Posted 良行天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery的事件编程相关的知识,希望对你有一定的参考价值。

1、基本事件

特别注意:在jQuery对象是没有相关事件的,其都是以方法的形式存在的。基本语法:

jQuery对象.事件(事件的处理程序);

常用事件:

• blur(fn) :当失去焦点时触发

• change(fn) :当状态改变时触发

• click(fn) 当点击时触发

• dblclick(fn) 当双击时触发

• focus(fn) 当获取焦点时触发

• keydown(fn) 当键盘按下时触发

• keyup(fn) 当键盘弹起时触发

• keypress(fn) 当键盘按下时触发

• load(fn) ready方法类似,当页面载入完毕后触发

• unload(fn) 当页面关闭时触发

• mousedown(fn) 当鼠标按下时鼠标左键)触发

• mouseup(fn) 当鼠标弹起时(鼠标左键)触发

• mousemove(fn) 当鼠标移动时触发

• mouseover(fn) :当鼠标悬浮触发

• mouseout(fn) :当鼠标离开时触发

• resize(fn) 当窗口大小改变时触发

• scroll(fn) 滚动条滚动触发

• select(fn) 当文本框的文本选中时触发

• submit(fn) 当表单提交时触发

示例代码:

1为元素绑定click事件

问题:到底jQuery中的事件绑定是动态绑定还是事件监听?

区别事件绑定是动态绑定还是事件监听主要是看我们能不能为同一个对象的同一个事件绑定多个事件处理程序。

jQuery的事件编程

运行结果:弹出hello,然后弹出world。由此可知,jQuery中,其事件绑定是通过事件监听的形式实现的而且jQuery调整了事件监听的兼容性问题,统一更改事件的触发顺序为正序触发。

2:为元素绑定mouseovermouseout事件

jQuery的事件编程

运行结果:

jQuery的事件编程


2、事件切换重点)

1hover(over,out) :鼠标悬浮与鼠标离开事件

参数说明:

over鼠标悬浮事件

out:鼠标离开事件

示例代码:

jQuery的事件编程

2toggle(fn,fn) :点击切换事件

第一次单击时,触发第一个fn事件处理程序

第二次单击时,触发第二个fn事件处理程序

次单击时,触发第一个fn事件处理程序

参数说明:

fn:事件的处理程序

示例代码

jQuery的事件编程


3事件绑定重点)

1bind(type,[data],fn) :为元素某个事件绑定相关的事件处理程序

参数说明

type事件的类型,不带’on’前缀,如clickmouseovermouseout

[data]可选参数,代表事件发生时所传递的数据(了解)

fn事件的处理程序

2bind({type:fn,type:fn}) :一次为元素绑定多个事件处理程序要求参数是一个json对象

参数说明:

type:事件的类型

fn:事件的处理程序

3one(type,[data],fn) 为元素进行一次绑定只触发一次

参数说明:

type:事件类型

[data]可选参数,代表事件发生时所传递的数据(了解)

fn:事件处理程序

4unbind([type]) 移除事件绑定

参数说明

type:要移除的事件类型,如果不写代表移除所有事件

 示例代码:

1:使用bind方法为元素绑定相关事件

jQuery的事件编程

运行结果:弹出hello,弹出world。所以由此可知,jQuery中事件绑定都是通过事件监听的形式进行实现的且调整了兼容性问题以及事件的触发顺序。

 2一次为元素绑定多个事件

jQuery的事件编程

3:使用one方法为元素进行一次绑定

jQuery的事件编程

4使用unbind方法移除事件

原生javascript代码中,移除事件必须有一个前提:在进行事件绑定时,其事件处理程序必须是一个有名函数,这一点在jQuery可以不需要指定。

jQuery的事件编程

jQuery的事件编程


4事件绑定中的this重点)

原生Javascript代码中,存在一个特殊的关键词this,其随着运行环境的不同其指向也是不同的

在行内绑定中,this指向全局window对象

② 在动态绑定中,this指向当前正在操作的dom对象

③ 在事件监听中,IE内核浏览器下,this指向全局window对象,W3C内核浏览器下,指向当前正在操作的dom对象

jQuery中,其调整事件监听中关键词this的指向,统一更改为指向当前正在操作的dom对象。

 示例代码:

jQuery的事件编程

运行结果:div元素更改了背景颜色,所以由此可知:jQuery中实现事件绑定时,其事件处理程序内部的this关键词指向了当前正在操作的dom对象。


5事件冒泡

之所以称之为事件冒泡是指事件的响应会像水泡一样上升最顶级对象,我们把这种情况就称之为事件冒泡

示例代码

jQuery的事件编程

jQuery的事件编程

有些情况下,事件冒泡是人为设计的,但是大多数情况下,冒泡需要禁止。

原生Javascript代码中有两种禁用方式

1IE内核浏览器

window.event.cancelBubble = true;

2W3C内核浏览器

dom对象.事件 = function(event) {

event.stopPropagation();

}

jQuery其对W3C的支持非常好,所以jQuery中只需要通过event.stopPropagation()就可以实现对冒泡的禁止。

jQuery的事件编程

说明:运行以上程序发现,无论在IE内核浏览器还是W3C内核浏览器都可以禁止事件冒泡,由此可知,jQueryevent事件对象进行了二次封装。


6默认行为

html,有些HTML标签具有自己的默认行为。如a超级链接标签,单击后可以自动跳转到指定的url页面submit提交按钮,单击后自动提交表单数据服务器端。但是大多数情况下,默认行为也是需要禁止的。

原生Javascript代码中,两种方式禁止默认行为:

1IE内核的浏览器

window.event.returnValue = false;

2W3C内核的浏览器

dom对象.事件 = function(event) {

event.preventDefault();

}

jQuery中,其调整了兼容性问题,统一更为:event.preventDefault()就可以实现对默认行为的禁止。





以上是关于jQuery的事件编程的主要内容,如果未能解决你的问题,请参考以下文章

使用可排序的 jQuery 以编程方式移动项目,同时仍触发事件

3-3 编程练习:jQuery键盘事件案例

jquery css事件编程 尺寸设置

从零开始学 Web 之 jQuery事件冒泡,事件参数对象,链式编程原理

使用 PhoneGap/jQuery Mobile 以编程方式在 iPhone/Android 日历中添加事件?

JavaLearn#(22)jQuery介绍选择器事件动画DOM编程操作CSS表单验证