JQuery不支持捕获模型

冒泡模型解析

<body>
      <div>
             <input id="bntShow" type="button" value="点击" class="bnt"/>
      </div>
      <div class="classShow">   </div>
</body>
var i = ;
$("body,div,#bntShow").click(function(){
      i++;
      $(".classShow").show().html("冒泡现象")
      .append("<div><b>执行次数"+i+"</b></div>")
});

输出结果:执行次数3

单击一次按钮却执行了3次同样的程序,$(“body,div,#bntShow”)存在冒泡现象,分别触发了#bntShow、div、body的click事件,所以执行了三次i++的操作

在JQuery中可以用stopPropagation()方法阻止冒泡

在上面的脚本中加入这句话,执行次数才能为1

$("body,div,#bntShow").click(function(){
      i++;
      $(".classShow").show().html("冒泡现象")
      .append("<div><b>执行次数"+i+"</b></div>");
      event.stopPropagation();  //还可使用return false阻止冒泡
});

事件方法

bind()                  向匹配元素附加一个或更多事件处理器

blur()                  触发、或将函数绑定到指定元素的 blur 事件

change()             触发、或将函数绑定到指定元素的 change 事件

click()                 触发、或将函数绑定到指定元素的 click 事件

dblclick()            触发、或将函数绑定到指定元素的 doubleclick 事件

delegate()          向匹配元素的当前或未来的子元素附加一个或多个事件处理器

die()                    移除所有通过live() 函数添加的事件处理程序。

error()                触发、或将函数绑定到指定元素的 error 事件

event.isDefaultPrevented()     返回 event 对象上是否调用了event.preventDefault()。

event.pageX       相对于文档左边缘的鼠标位置。

event.pageY              相对于文档上边缘的鼠标位置。

event.preventDefault()    阻止事件的默认动作。

event.result        包含由被指定事件触发的事件处理器返回的最后一个值。

event.target              触发该事件的 DOM 元素。

event.timeStamp      该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。

event.type          描述事件的类型。

event.which        指示按了哪个键或按钮。

focus()                触发、或将函数绑定到指定元素的 focus 事件

keydown()           触发、或将函数绑定到指定元素的 key down 事件

keypress()           触发、或将函数绑定到指定元素的 key press 事件

keyup()               触发、或将函数绑定到指定元素的 key up 事件

live()                   为当前或未来的匹配元素添加一个或多个事件处理器

load()                  触发、或将函数绑定到指定元素的 load 事件

mousedown()     触发、或将函数绑定到指定元素的 mouse down 事件

mouseenter()     触发、或将函数绑定到指定元素的 mouse enter 事件

mouseleave()     触发、或将函数绑定到指定元素的 mouse leave 事件

mousemove()     触发、或将函数绑定到指定元素的 mouse move 事件

mouseout()         触发、或将函数绑定到指定元素的 mouse out 事件

mouseover()       触发、或将函数绑定到指定元素的 mouse over 事件

mouseup()          触发、或将函数绑定到指定元素的 mouse up 事件

one()                   向匹配元素添加事件处理器。每个元素只能触发一次该处理器。

ready()               文档就绪事件(当 HTML 文档就绪可用时)

resize()               触发、或将函数绑定到指定元素的 resize 事件

scroll()                触发、或将函数绑定到指定元素的 scroll 事件

select()               触发、或将函数绑定到指定元素的 select 事件

submit()              触发、或将函数绑定到指定元素的 submit 事件

toggle()                     绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。

trigger()             所有匹配元素的指定事件

triggerHandler()       第一个被匹配元素的指定事件

unbind()              从匹配元素移除一个被添加的事件处理器

undelegate()      从匹配元素移除一个被添加的事件处理器,现在或将来

unload()              触发、或将函数绑定到指定元素的 unload 事件

bind(type,[data],function)方法

$("div").bind("clickmouseout",function(){  //绑定多个事件,可以用空格分开
      })

通过映射方法绑定

$("div").bind(
      {
             focus:function(){ },
             change:function(){ }
      }
);

带参数的情况

var message = "执行的是focus事件";
$("div").bind("focus",{msg:message},function(event){
      $("#div1").show()
      .html(event.data.msg);
})

hover()方法

此方法可以使元素在鼠标悬停和鼠标移除的事件中进行切换,该方法也可以通过mouseenter和mouseleave进行替换

$("a").hover(
      function(){ },
      function(){ }
)

等价于

$("a").mouseenter(
      function(){ };
)
$("a").mouseleave(
      function(){ };
)

toggle()方法

此方法的功能是每次单击后依次调用定义的函数

$("img").toggle(
function(){
      $("img").attr("src","imags/1.jpg");
      $("img").attr("title",this.src);
},
function(){
      $("img").attr("src","imags/2.jpg");
      $("img").attr("title",this.src);
},
function(){
      $("img").attr("src","imags/3.jpg");
      $("img").attr("title",this.src);
}
);  //单击图片,每次换一张,依次执行三个函数

unbind(type,function)方法

$("input:eq(0)").bind("click",function(){
      $("#divtip").append("按钮一的单击事件");
});
functionoClick(){
      $("#divtip").append("按钮二的单击事件");
};
$("input:eq(1)").bind("click",oClick);

$("input:eq(2)").bind("click",function(){
      $("input").unbind();  //移除全部input表单的单击事件
      //$("input").unbind("click",oClick);  //仅移除按钮二的事件
});
<input type="button" value="按钮一" class="bnt"/>
<input type="button" value="按钮二" class="bnt"/>
<input type="button" value="删除事件" class="bnt"/>
<div id="divtip"> </div>

one(type,[data],function)方法

此方法用于仅触发一次的事件绑定,用法与bind()方法类似

trigger(type,[data])方法

$("button").click(function(){
   $("input").trigger("select");
});

delegate(childSelector,event,data,function)方法

$("div").delegate("button","click",function(){
    $("p").slideToggle();
  });
<div style="background-color:red">
	<p>这是一个段落。</p>
	<button>请点击这里</button>
</div>

JQuery之事件处理的更多相关文章

  1. jQuery系列 第六章 jQuery框架事件处理

    第六章 jQuery框架事件处理 JavaScript以事件驱动来实现页面的交互,其核心是以消息为基础,以事件来驱动.虽然利用传统的JavaScript事件处理方式也能够完成页面交互,但jQuery框 ...

  2. jQuery的事件处理

    一.页面加载响应事件 $(document).ready()方法,获取文档就绪的时候.他极大地提高了Web相应速度.虽然该方法可以代替传统的window.onload()方法,但是两者之间仍然有差别. ...

  3. jQuery的事件处理方法

    .on()方法用来处理事件 $("li").on("click",function(){ $(this).addClass("complete&quo ...

  4. jQuery基础事件处理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. jQuery基础--事件处理

    2. jQuery事件机制 JavaScript中已经学习过了事件,但是jQuery对JavaScript事件进行了封装,增加并扩展了事件处理机制.jQuery不仅提供了更加优雅的事件处理语法,而且极 ...

  6. Jquery动态绑定事件处理函数 bind / on / delegate

    1.bind方法绑定的事件处理函数不会应用到后来添加到DOM中的新元素.比如你在用bind给页面元素绑定事件之后,又新添加了一些与之前绑定过事件的元素一样的DOM元素,但是这些事件并不能在新的DOM元 ...

  7. JQuery的事件处理、Jason

    事件的处理: <body> <div id="aa" style="width:100px; height:100px; background-colo ...

  8. 使用AmplifyJS和JQuery编写更好更优雅的javascript事件处理代码

    事件(或消息)是一种经常使用的软件设计模式.可以减少消息处理者和消息公布者的之间的耦合,比方J2EE里面的JMS规范.设计模式中的观察者模式(也叫公布/订阅模式).这对于javascript代码相同适 ...

  9. jquery事件之事件处理函数

    一.事件处理 方法名 说明 语法 (events 事件类型,data数据,handler 事件处理函数,selector 选择器) Bind( 为每一个匹配元素的特定事件(像click)绑定一个事件处 ...

随机推荐

  1. 2015 多校联赛 ——HDU5349(水)

    Problem Description A simple problem Problem Description You have a multiple set,and now there are t ...

  2. UESTC 618 无平方因子数 ( 莫比乌斯)

    UESTC 618 题意:求1到n中无平方因子数的个数 Sample Input 3  1  10  30 Sample Output 1  7  19 思路:与前面的BZOJ 2440相似 #inc ...

  3. C++符号优先级

    C++符号优先级 优先级 操作符 功能 用法 结合性 1 ()[]->.::++-- Grouping operatorArray accessMember access from a poin ...

  4. Python中高阶函数讲解

    高阶函数讲解 1. 常规高阶函数 递归函数 格式:def func_name(variable): '''__doc__'''#函数的说明文档 if 条件表达式:#限制递归退出值 pass retur ...

  5. Android智能手机中各种音频场景下的audio data path

    上一篇文章(Android智能手机上的音频浅析)说本篇将详细讲解Android智能手机中各种音频场景下的音频数据流向,现在我们就开始.智能手机中音频的主要场景有音频播放.音频录制.语音通信等.不同场景 ...

  6. curl支持HTTP和https

    设计流程 基于curl工具实现https/http,设计初步流程为:linux平台验证→→交叉移植arm板. linux系统下调试http和https 1.1 Linux安装curl 输入命令:sud ...

  7. Linux学习之Centos(三)------系统文件目录及含义详解

    Linux学习之Centos 之三------文件目录及含义 在了解了每个文件的相关种类与属性,以及了解了如何更改文件属性/权限的相关信息后,再来要了解的就是, 为什么每套Linux distribu ...

  8. 40道Java初中级算法面试题

    [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:   兔子的规律为数 ...

  9. List Set Map比较

    List按对象进入的顺序保存对象,不做排序或编辑操作. Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序–否则应该使用List). Map同 ...

  10. JavaScript Boolean(布尔)对象

    Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false). Boolean(布尔)对象是三种包装对象:Number.String和Boolean中最简单的一种,它没有大量的实 ...