JQuery的事件处理机制在JQuery框架中起着重要的左右,它就像电视机的开关,我们打开电视机的开关才能看到各个电视台精彩的节目,那么我们使用JQuery的事件处理机制就可以创造我们自定义的行为,比如说提交、改变样式、效果显示等等,使我们的网页更加丰富。当然它的优点并不只在于这点,使用JQuery事件处理机制比直接使用Javascript本身内置的一些事件相应方式更加的灵活,更加不容易暴露在外,而且有更加优雅的语法,大大减少了我们工作的量度。

  JQuery的事件处理机制包括:页面加载、事件绑定、事件委派、事件切换四种机制。我们先从$(document).ready()事件开始。

  一、页面加载$(document).ready()相当与Javascript中的onLoad()事件,都是在页面加载的时候执行该方法,但是两者又有着微妙的差别,ready()事件是当HTML下载完成并解析成DOM树之后就可以执行,而onLoad()事件要等HTML包括文件都下载完成之后才能执行。我们在ready()事件中可以绑定其他的一些事件或者函数,ready()有几种语法可以表示:

  $(document).ready(function(){});

  $().ready(function(){});

  $(function(){});

  当然我个人还是习惯于用第一种,增强可读性,需要注意的是在使用ready()事件的时候请确保在 <body> 元素的onload事件中没有注册函数,否则不会触发$(document).ready()事件。也可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。

  二、事件切换只有两个方法,就是hover()和toggle()两个方法,由于他们截取组合的用户操作,并且以多个函数响应,因此也称为复合事件处理机制。hover()方法是一个模仿鼠标悬停变化的方法,简单的说就是鼠标移入移出是时候执行你指定的行为的方法,我们最常用的就是做菜单切换效果。toggle()方法就是当你点击按照顺序执行你指定的函数方法,第一次点击执行第一个函数,第二次点击执行第二个函数,以此类推,它可以使用事件绑定中的unbind('click')方法删除。

  hover(over,out)实例:  

hover()

<style type="text/css">
#Menu
{
background-color:Red;
width:150px;
height:30px;
text-align:center;
border:solid 1px black;
}
#Menu_child
{
width:150px;
border:solid 1px black;
display:none;
}
#Menu_child div
{
background-color:#f3f3f3;
width:150px;
height:30px;
text-align:center;
}
</style>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#Menu").hover(
function() {
$("#Menu_child").fadeIn();
},
function() {
$("#Menu_child").fadeOut();
});
});
</script>
</head>
<body>
<div id="Menu">JQuery事件处理</div>
<div id="Menu_child">
<div>页面加载</div>
<div>事件绑定</div>
<div>事件委派</div>
<div>事件切换</div>
</div>
</body>

  toggle(fn,fn)实例:

代码

HTML代码
<input type="button" value="toggle()方法" id="toggle" />
JQuery代码
$("#toggle").toggle(
function() {
alert("第一次点击");
},
function() {
alert("第二次点击");
},
function() {
alert("第三次点击");
},
function() {
alert("第四次点击");
});

  三、事件委派中也只有两个方法,live()和die()两个方法,这两个方法是1.3版本之后才新增的,之前的版本是没有的。live()可以理解成元素组事件委派方法,比如li元素用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用,而无需重新给这种新增加的元素绑定事件,在编写树形插件的时候相当有用。die()方法就很好解释,用来解除live()绑定的方法。

  live(type,fn):live()中type参数目前只支持click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup事件。实例如下

代码

HTML代码:
<ul>
<li>页面加载</li>
<li>事件绑定</li>
<li>事件委派</li>
<li>事件切换</li>
</ul>
JQuery代码:
$("li").live('click', function() {
var index = $("li").index(this);//获取li的索引
var text = $("li").eq(index).text();//根据单击项索引获得文本值
alert("索引:" + index + ",文本值:" + text);
});

  die([type],[fn]):die()使用起来相当简单,一种删除所有live()事件,一种指定删除,两个参数是可选的。

代码

$("#die").click(function() {
$("li").die(); //删除所有live()事件
$("li").die("click");//删除指定为click的live()事件
$("li").die('click', function() { alert("删除live()事件成功") });//删除指定为click的live()事件并执行函数
});

仅供参考,欢迎感兴趣的朋友参与讨论。下篇文章再说事件绑定,写一起太长了。未完待续........

转自:http://www.cnblogs.com/liuxinet/archive/2010/11/24/1884801.html

初窥JQuery(二)-事件机制(1)相关推荐

  1. 信息安全初窥(二):信息安全能力体系

    文章目录 前言 一.信息安全需要哪些能力? 1.法律与标准 2.攻防技术 3.工程实践 二.如何锻炼这些能力? 前言 上篇文章说到,我对信息安全行业的前途非常乐观,但这种乐观建立在不那么美好的事实之上 ...

  2. windows内核初窥(二)-----系统机制

    系统机制: windows2000为执行体.内核.设备驱动程序等核心态部分提供了一些基础机制.先让我们看看都有哪些: (1)陷阱调度:包括中断.延迟过程调用(DPC).异步过程调用(APC).异常处理 ...

  3. jQuery(二)事件

    鼠标事件:clickdblclickmouseenter:鼠标进入mouseleave:鼠标离开hover:鼠标悬停 <!DOCTYPE html> <html> <he ...

  4. 初窥JQuery(一)-选择符 【转】

    JQuery强大的选择符可以让我们获得页面中任何元素进行操作,并且使用简单方便,可读性强.本章内容根据本人在开发中常用到的选择符作为例子来进行讲解,如有更多常用的简单的例子可回复提供,参与讨论,一起学 ...

  5. Android Q初窥(二)行为变更

    目录 行为变更 所有APP 手势导航 非 SDK 接口限制 NDK Bionic 库和动态链接器路径变更 系统二进制文件/库会映射到只执行内存 安全性 WLAN 直连广播 WLAN 感知功能 Go 设 ...

  6. Spring AOP 源码初窥(二) 从注解开始

    版本 spring 5.0.8.BUILD-SNAPSHOT aspectjweaver 1.8.13 从注解开始 由于在本人实际应用中使用的是注解配置AOP,也更倾向于了解Spring AOP的整个 ...

  7. 初窥Quarts2D(二)

    1.Quartz2D的内存管理 使用含有"create"或者"copy"的函数创建的对象,使用完后必须释放,否则将导致内存泄漏. 使用不含有"crea ...

  8. jQuery中的事件机制与DOM操作

    jQuery事件机制 jQuery的事件机制,指的是jQuery对JavaScript操作DOM事件的封装,包括了:事件绑定.事件解绑.事件触发. 下面我们先来回顾一下事件的几种类型. 事件 描述 c ...

  9. 【初窥javascript奥秘之事件机制】论“点透”与“鬼点击”

    前言 最近好好的研究了一番移动设备的点击响应速度,期间不断的被自己坑,最后搞得焦头烂额,就是现在可能还有一些问题,但是过程中感觉自己成长不少, 最后居然感觉对javascript事件机制有了更好的认识 ...

  10. jQuery中的事件机制深入浅出

    昨天呢,我们大家一起分享了jQuery中的样式选择器,那么今天我们就来看一下jQuery中的事件机制,其实,jQuery中的事件机制与JavaScript中的事件机制区别是不大的,只是,JavaScr ...

最新文章

  1. [TJOI2014] Alice and Bob
  2. codeforces 1017E
  3. 【原】Docker学习_安装篇(一)
  4. yb3防爆电机型号含义_温州出租大型发电机定做-智慧动力机械设备租赁
  5. Excel VBA 函数
  6. 关于IE样式兼容问题
  7. 联想笔记本电脑键盘灯怎么开启_解决方案:如何打开Lenovo键盘灯?联想笔记本键盘键盘灯按哪个键?...
  8. Linux下使用rm删除文件,并排除指定文件(亲测可行)
  9. 根据VendorId 和DeviceId 查看PCI设备的名称
  10. 解决移动端滑动方向相反
  11. 缺少dll文件的终极解决办法!
  12. JVM内存Dump原理与在线分析实战 | 得物技术
  13. linux查看文件内容行数,Linux 中如何查看文件的行数,字数,字节数
  14. 【赛氪 Saikr】不正方形(数学、平面几何 ps:今天打了假赛)
  15. 11075 强盗分赃
  16. 【Java】创建文件夹
  17. 如何快速深度写论文?
  18. 什么是方差分析(ANOVA)?方差分析(ANOVA)有哪些类型?
  19. 体温单源码 delphi体温单源码 又叫三测单
  20. 冰河时代英文台词_即将到来的冰河时代

热门文章

  1. BZOJ5212: [Zjoi2018]历史
  2. 第八节,改善深层神经网络:超参数调试、正则化及梯度下降算法(中)
  3. UVA 10474 Where is the Marble?
  4. 用Sql Server 2000的数据库备份来还原Sql Server 2005中的数据库
  5. redis采用序列化方案存对象
  6. 封装dialog弹窗
  7. 简述angularjsh中constant和$filter的用法
  8. SAP在阿里云白皮书-第三章 SAP上阿里云场景介绍
  9. css实现在一行显示多余部分显示省略号
  10. 游戏迷看过来 年末促销买个华为平板 M3可畅玩