由于今天有一个比较重要的面试,所以昨天晚上对以前做的一些项目做了一下总结,直接导致昨天的学习笔记断更了,哎,计划永远赶不上变化啊!今天学习了Jquery中是事件,就此做一个笔记,便于日后复习。

一、加载DOM时执行的事件

JavaScript中的window.onload方法和Jquery中的$(document).ready()方法的对比。

1、执行时机

window.onload方法是等网页中的所有元素(包括所有的关联元素)都加载完毕之后执行,而$(document).ready()方法是在DOM就绪之后就可以调用,不必等到所有关联文件加载完毕。举个例子,比如一个商品列表的页面,需要加载很多商品的图片,点击每个商品的图片可以链接到商品的详情页面。如果用JavaScript中的window.onload方法的话,必须得每个图片都加载好以后才可以执行其中的事件,如果用Jquery中的$(document).ready()方法的话,则可以等想要点击的图片加载完毕后就可以触发其中的事件。但是$(document).ready()方法也有其不适用的时候,比如方法中有一个事件是为所有图片设置宽和高,那么可能有些图片就无法获取设置了,所以Jquery中有新添加了一个方法,load()方法,此方法会在元素的onlond事件中绑定一个处理函数,如果这个处理函数绑定在window对象上,则其功能等同于JavaScript中的window.onload方法,如果绑定在一个元素上的话,则这个元素加载完毕之后执行处理函数。

2、多次使用

JavaScript中的window.onload方法一次只能保存对一个函数的引用,即如果先后给window.onload方法绑定两个函数,则系统只会执行第二个函数,第一个函数自动被第二个函数覆盖。而Jquery中的$(document).ready()方法会按绑定的先后顺序,一次执行每一个函数。

3、简写方式

$(document).ready(){}可以简写成$(function(){}),而$(document)可以简写为$(),当$不带参数时,默认参数就是“document”,因此,$(document).ready(){}还可以简写成$().ready(){}。

二、事件绑定

1、使用bing()可以给元素绑定事件,举个例子吧。

$(#name_1).bind("click",function(){

内部要执行的代码。

})

该示例是给id属性为name_1的元素绑定了一个click事件。

2、改变绑定事件的类型

给一个元素绑定mouseover事件和mouseout事件,实现的方法是:

$(#name_1).bind("mouseover",function(){

显示文本

}).bind("mouseout",function(){

隐藏文本

})

以上代码执行的效果是:当鼠标移到属性id为name_1的元素上时,显示文本,当鼠标移开时,隐藏文本。

三、合成事件

Jquery有两个合成事件:hover()方法和toggle()方法。

hover()方法是模拟光标悬停事件,它可以绑定两个事件,当鼠标移动到选中元素上时,执行第一个方法;当鼠标移开时执行第二个事件。

toggle()方法可以绑定多个事件,当鼠标单击绑定它的元素时,该元素会依次执行其中的事件。

四、事件冒泡

事件冒泡是指几个嵌套的元素里绑定了相同类型的事件,当触发里边元素的事件后,外边元素的事件也会依次被触发。例如在一个html页面中,<body>下添加了一个<div>元素,而在<div>元素中又嵌套了<span>元素。为<body>、<div>、<span>三个元素依次绑定事件,事件中分别执行输出3、2、1。单击<span>元素,页面会依次输出1、2、3。这就是时间冒泡。

解决时间冒泡的方法是:在function的参数中添加事件对象,例如事件对象名为event,在此时间中添加如下代码,即可停止事件冒泡:

event.stopPropagation();

网页中的有些元素有其默认的行为,阻止其默认行为的方法是:在function的参数中添加事件对象,例如event,执行以下代码:

event.preventDefault();

如果想同时阻止元素的默认行为和事件冒泡,可以在事件处理函数中返回false:

return false;

五、事件捕获

事件捕获的效果与事件冒泡恰恰相反,它是相同类型的时间从外到内的执行,遗憾的是,Jquery不支持事件捕获!

又到凌晨了,不学了,睡觉!!!

Jquery:Jquery中的事件<一>的更多相关文章

  1. jquery ajax 中各个事件执行顺序

    jquery ajax 中各个事件执行顺序如下: 1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) 4.success 5.ajaxSuccess(全局事 ...

  2. jquery ajax中各个事件执行顺序如下

    $(function(){ setTimeout(function(){ $.ajax({ url:'/php/selectStudent.php', }); },0); $(document).aj ...

  3. Javascript中的事件二

    <!------------------示例代码一---------------------><!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  4. 原生js实现jquery库中部分事件的功能(jquery库封装二)

    继续昨天的封装,今天的部分继昨天选择器之后实现了css样式的获取和添加,attr的获取和添加和一部分事件的封装:只是我自己的理解,不妥之处欢迎大家在评论中提出,相互学习,共同提高 /** * Crea ...

  5. Jquery:Jquery中的事件<二>

    这几天快忙死了,办了离职还得办入职,完全打乱了我的计划,但是能有一个理想的工作,还是很开心的,以后加把劲,争取把计划再赶上来!不说了,学习!!! 五.事件对象的属性 1.event.type:获取事件 ...

  6. 【锋利的jQuery】中全局事件ajaxStart、ajaxStop不执行

    最近一直都在研究[锋利的jQuery],确实是一本好书,受益匪浅.但由于技术发展及版本更新等原因,里面还是有些坑需要踩的. 比如:第六章七节中提到的全局事件ajaxStart.ajaxStop照着案例 ...

  7. Python-JS中的事件详解

    目录 fdf!! fefd 一.JS中的事件二.JS中的事件分类: 1.事件初级: 2.事件参数 Event 3.鼠标事件 4.键盘事件 *** 5.表单事件 *** 6.文档事件 * 7.图片事件 ...

  8. jQuery:详解jQuery中的事件(二)

    上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件.事件冒泡和事件移除等内容. 接上篇jQuery:详解jQuery中的事件(一) ...

  9. 四、jquery中的事件与应用

    当用户浏览页面时,浏览器会对页面代码进行解释或编译--这个过程实质上是通过时间来驱动的,即页面在加载时,执行一个Load事件,在这个事件中实现浏览器编译页面代码的过程.时间无论在页面元素本身还是在元素 ...

  10. jQuery学习笔记(三)jQuery中的事件

    目录 加载DOM 事件绑定 合成事件 事件冒泡 移除事件 一.加载DOM Javascript 与HTML之间的交互是通过用户操作浏览器页面引发的事件来处理的.jQuery提供了丰富的事件处理机制.从 ...

随机推荐

  1. VS 的winform中生成release模式

    我试过,直接在项目的"Properties"中,修改"Build"标签的"Configuration"还不行.因为之前将不常用的工具栏隐藏了 ...

  2. C#_Stopwatch 类

    命名空间:System.Diagnostics Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 Stopwatch 方案中,先调用 Start 方 ...

  3. python入门安装

    一.在python官网上下载python3.4或python2.7版本,这两个版本目前比较稳定,安装第3方包相对而言没有什么问题. 二.安装成功后,在计算机->属性->高级系统设置-> ...

  4. AngularJS自定义表单控件

    <!doctype html> <html ng-app="myApp"> <head> <script src="G:\\So ...

  5. 使用Azure云存储构建高速 Docker registry

    使用Azure云存储构建高速 Docker registry 使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高 ...

  6. OC 冒泡排序 -- 核心代码

    //冒泡 核心代码 for (int i = 0; i < array.count - 1; i++) { int a = [array[i] intValue]; for (int j = i ...

  7. MATLAB cell 数组介绍

    转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...

  8. 再转一篇gtest1.6安装

    http://www.cppblog.com/izualzhy/archive/2012/07/31/185772.html googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用 ...

  9. [POJ] 1274 The Perfect Stall(二分图最大匹配)

    题目地址:http://poj.org/problem?id=1274 把每个奶牛ci向它喜欢的畜栏vi连边建图.那么求最大安排数就变成求二分图最大匹配数. #include<cstdio> ...

  10. C语言在单片机开发中的应用

    在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种.对用惯了汇编的人来说,总觉得高级语言’可控性’不好,不如汇编那样随心所欲.但是只要我们掌握了一定的C语言知识,有些东西还是容易做出来 ...