`
ydwcn
  • 浏览: 63673 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

事件与事件对象(四)

阅读更多

七、使用jquery对象

使用事件自然少不了事件对象. 因为不同浏览器之间事件对象的获取, 以及事件对象的属性都有差异, 导
致我们很难跨浏览器使用事件对象.

jQuery中统一了事件对象, 当绑定事件处理函数时, 会将jQuery格式化后的事件对象作为唯一参数传
入:

1 $("#testDiv").bind("click", function(event) { });

关于event对象的详细说明, 可以参考jQuery官方文档: http://docs.jquery.com/Events/jQuery.Event

jQuery事件对象将不同浏览器的差异进行了合并, 比如可以在所有浏览器中通过 event.target 属性来获取事件的触发者(在IE中使用原生的事件对象, 需要访问event.srcElement).

下面是 jQuery 事件对象可以在扩浏览器支持的属性:

属性名称 描述 举例
type

事件类型.如果使用一个事件处理函数来处理多
个事件, 可以使用此属性获得事件类型,比如
click.

$("a").click(function(event) {
alert(event.type);
});

target

获取事件触发者DOM对象

$("a[href=http://google.com]").click(function(event)
alert(event.target.href);
});

data

事件调用时传入额外参数.

$("a").each(function(i) {
$(this).bind('click', {index:i}, function(e){
alert('my index is ' + e.data.index);
});
});

relatedTarget

对于鼠标事件, 标示触发事件时离开或者进入
的DOM元素

$("a").mouseout(function(event) {
alert(event.relatedTarget);
});

currentTarget

冒泡前的当前触发事件的DOM对象, 等同于
this

$("p").click(function(event) {
alert( event.currentTarget.nodeName );
});
结果:P

pageX/Y

鼠标事件中, 事件相对于页面原点的水平/垂直
坐标.

$("a").click(function(event) {
alert("Current mouse position: " + event.pageX + ", "
});

result

上一个事件处理函数返回的值

$("p").click(function(event) {
return "hey"
});
$("p").click(function(event) {
alert( event.result );
});
结果:"hey"

timeStamp 事件发生时的时间戳.

var last;
$("p").click(function(event) {
if( last )
alert( "time since last event " + event.timeStamp);
last = event.timeStamp;
});

 

上面是jQuery官方文档中提供的event对象的属性. 在"jQuery实战"一书中还提供了下面的多浏览器支持的属性, 大家可以验证是否在所有浏览器下可用:

属性名称 描述  
altKey Alt键是否被按下. 按下返回true  
ctrlKey ctrl 键是否被按下, 按下返回true  
metaKey

Meta键是否被按下, 按下返回true.
meta键就是 PC机器的Ctrl 键,或者Mac 机器上面的Command

 
shiftKey Shift键是否被按下, 按下返回true  
keyCode

对于keyup和keydown事件返回被按下的键. 不区分大小写, a和A都返回65.
对于keypress事件请使用which属性, 因为which属性跨浏览时依然可靠.

 
which

对于键盘事件, 返回触发事件的键的数字编码. 对于鼠标事件, 返回鼠标按键号(1左,2中,3右).

 
screenX/Y 对于鼠标事件, 获取事件相对于屏幕原点的水平/垂直坐标  

 

事件对象除了拥有属性, 还拥有事件. 有一些是一定会用到的事件比如取消冒泡 stopPropagation() 等.

下面是jQuery事件对象的函数列表:

名称 说明 举例
preventDefault()

取消可能引起任何语意操作的事件. 比如元素的href链接加载, 表单提交以及click引起复选框的状态切
换.

$("a").click(function(event){
event.preventDefault();
// do something
});

isDefaultPrevented()

是否调用过 preventDefault() 方法

$("a").click(function(event){
alert( event.isDefaultPrevented() );
event.preventDefault();
alert( event.isDefaultPrevented() );
});

stopPropagation() 取消事件冒泡

$("p").click(function(event){
event.stopPropagation(); )

// do something
});

stopImmediatePropagation()

取消执行其他的事件处理函数并取消事件冒泡.
如果同一个事件绑定了多个事件处理函数, 在其中一个事件处理函数中调用此方法后将不会继续调用其他的事件处理函数.

$("p").click(function(event){
event.stopImmediatePropagation();
});
$("p").click(function(event){
// This function won't be executed
});

isImmediatePropagationStopped()

是否调用过
stopImmediatePropagation(
)
方法

$("p").click(function(event){
alert( event.isImmediatePropagationStopped());

event.stopImmediatePropagation();
alert( event.

isImmediatePropagationStopped());

});

 

这些函数中 stopPropagation() 是我们最长用的也是一定会用到的函数. 相当于操作原始event 对象
的event.cancelBubble=true来取消冒泡.

分享到:
评论

相关推荐

    事件高级用法及兼容写法

    1)事件对象:当浏览器执行事件的时候,会将所有与事件相关的内容(鼠标位置,触发的目标等)封装为一个对象,并且在触发事件的函数,在事件函数中进行传递 Event 常见属性: clientX clinetY 鼠标相对客户端的位置 ...

    浅谈Excel开发:三 Excel 对象模型

    Application,Workbook,Worksheet,Range对象,这些对象不论在何种Excel开发方式中,只要需要对Excel进行交互,都会使用的到,本文介绍了这四个对象中的一些常用的属性,方法及事件。他们之间有很多对象都有相同的...

    javaScript常用事件

    当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。 5.onFocus事件:光标进入文本框时触发调用函数。 当用户单击Text或textarea以及select对象时,...

    asp.net 核心对象

    asp.net 核心对象玉开的见解 我们可以从另一角度来看Asp.net,它就是一个底层框架平台,它负责接收HTTP请求(从IIS传入),将请求分配给一个线程,再把请求放到它的处理管道中,由一些其它的【管道事件订阅者】来...

    大二下面向对象 Java六次实验报告+思维导图总结xmind文件和图片+项目总结报告 +netbeans安装包 大连工业

    通过使用类与对象, 为现实事物到程序提供一种直观的映射机制. 实验四 文件 一、 实验目的 通过文本文件内容的读写访问, 实现对象状态的长期保存和恢复. 实验五 继承 一、实验目的 通过对具体类的继承(扩充), 为...

    面向对象与UML资料

    面向对象与UML 第一部分 软件开发活动 7 第一章 结构化的分析与设计 8 第一节 模型图 8 业务流程图 8 数据流图 11 功能结构图 12 功能树 13 网络结构图 14 程序流程图 15 第二节 需求分析 15 需求分析的任务 15 需求...

    面向对象程序设计实验报告-JAVA

    实验三 类、对象和包 实验四、异常处理  1.运行下面的程序,理解异常的抛出、捕捉与处理。 实验五、 GUI标准组件及事件处理  1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。 ...

    unity3d游戏入门第四章----场景与游戏对象

    第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与组件 第08章 游戏脚本 第09章 Script API 第10章 运动计算 第11章 运行的方向 第12章 屏幕坐标 第13章 鼠标事件处理 第14章 ...

    java语言与面向对象程序设计形考4-0001.docx

    A、事件对象 B、事件处理器 C、事件监听器 D、事件适配器 11.(3分) java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。当鼠标按键被...

    JavaScript事件学习小结(三)js事件对象

    相关阅读: JavaScript事件学习小结(五)js中事件类型之鼠标事件 ... JavaScript事件学习小结(一)事件流 ... javaScript事件学习小结(四)event的公共成员(属性和...JavaScript事件学习小结(三)js事件对象 //www.

    【学习笔记】:DOM对象及事件绑定

    文章目录一、DOM的概念二、DHTML与HTML DOM三、Document对象获取元素方法四、Element对象与属性相关方法五、对DOM对象的操作1、DOM对象的属性2、创建元素3、挂载元素4、删除元素5、克隆元素六、调整元素样式的方式七...

    WindowsFormsApplication2.rar

    Visio二次开发的事件编程主要分为四个步骤: 首先,需要创建visio事件代理和visio事件处理类,并添加需要处理的事件; 其次,对需要处理的事件向对象进行注册,即添加到对象的EventList事件列表中,并同时指定...

    第一章JAVA面向对象的程序设计.doc

    面向对象的程序设计思想:以对象作为基本单位,以消息为驱动,事件模型为处理机制。 4:以后发展:基于组件(构件模型)、以中间件作为程序的构加基础等等,实现软件标准化 5:面向对象语言:C++、VB、Delphi及JAVA...

    西南科技大学Java程序设计与实践 实验四 GUI实验实验报告及源码

    练习面向对象的图形用户界面设计、界面布局、事件设计方 法。 二、实验内容: 设计一个类似Windows计算器的Application应用程序。 三、实验要求: 1、采用Java Application方式建立应用程序框架; 2、仿照Windows...

    操作系统实验四进程调度.doc

    设计进程控制块 PCB 表结构(与实验一的结构相同),分别适用于优先级调度算法和循环轮转调度算法,建立进程就绪队列。实现优先数调度和循环轮转调度两种调度算法。

    iOS事件分发机制与实践

    事件通过UIEvent对象描述UIEvent描述了单次的用户与应用的交互行为,例如触摸屏幕会产生触摸事件,晃动手机会产生运动事件。UIEvent对象中记录了事件发生的时间,类型,对于触摸事件,还记录了一组UITouch对象,下面...

    javaScript事件学习小结(四)event的公共成员(属性和方法)

    相关阅读: JavaScript事件学习小结(五)js中事件类型之鼠标事件 ... JavaScript事件学习小结(一)事件流 ... javaScript事件学习小结(四)event的公共成员(属性和方法) ...JavaScript事件学习小结(二)js...一、事件对象

    JavaScript事件学习小结(五)js中事件类型之鼠标事件

    相关阅读: JavaScript事件学习小结(五)js中事件类型之鼠标事件 ... JavaScript事件学习小结(一)事件流 ... javaScript事件学习小结(四)event的公共成员(属性...JavaScript事件学习小结(三)js事件对象 鼠标事件 D

Global site tag (gtag.js) - Google Analytics