深入理解jQuery 事件处理

浏览器的事件模型

DOM第0级事件模型

1.Event实例

他的属性提供了关于当前正被处理的已触发事件的大量信息。这包括一些细节,比如在哪个元素上触发的事件、鼠标事件的坐标以及键盘事件中单击了哪个键。

2.事件冒泡

当触发 dom 树中一个元素上的事件时,事件模型会检查这个元素是否已经创建了特定的事件处理器。如果是,就会调用已创建的事件处理器。然后,事件模型会检查目标元素的父元素,看其是否已经为此事件类型创建了处理器。如果是,就调用已创建的处理器,之后检查它的父元素,以及父元素的父元素,以此类推,直到 dom 树的顶部。

DOM第2级事件模型

IE事件模型

jQuery事件模型

使用jQuery绑定事件处理器

<html>
<head>
  <title>jQuery Events Example</title>
  <script type="text/javascript" src="../scripts/jquery-1.7.1.js"></script>
  <script type="text/javascript">
    $(function () {
      $('#example')
       .bind('click', function (event) {
         alert('BOOM once!');
       })
       .bind('click', function (event) {
         alert('BOOM twice!');
       })
       .bind('click', function (event) {
         alert('BOOM three times!');
       });
    });
  </script>
</head> 

<body>
  <img id="example" src="example.jpg" />
</body>
</html>

bind(eventType, data, handler); bind(eventMap)

可以为事件名称添加以圆点分隔的后缀来指定命名空间,以批量操作事件处理器。

可以通过单个bind()方法来为一个元素绑定多个事件。

$('.whatever').bind({
  click:function(event){/* handle */},
  mouseenter: function (event) {/* handle */ },
  mouseleave: function (event) {/* handle */ }
})

特定的事件绑定:

blur change click dblclick error focus focusin focusout keydown keypress keyup load mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup ready resize scroll select submit unload

当使用这些便捷方法时,event.data值是只读的。他们有一个参数 listener 函数,表示事件处理器。

focusin focusout

one(eventType, data, listener)

删除事件处理器

unbind(eventType, listener); unbind(event)

删除特定的事件处理器

删除命名空间中的所有事件处理器

$('*').unbind('.fred')Event实例

独立于浏览器的jQuery.Event属性和方法

名称 描述
altKey
ctrlKey
currentTarget
data
metaKey
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
result
target
timestamp
type
which
preventDefault()
stopPropagation()
stopImmediatePropagation()
isPropagationStopped()
isImmediatePropagationStopped()

触发事件处理器

trigger(eventType, data)

triggerHandler(eventType, data)

触发的便捷方法

blur() change() click() dblclick() error() focus() focusin() focusout() keydown() keypress() keyup() load() mousedown() mouseenter() mouseleave() mousemove() mouseout() mouseover() mouseup() resize() scroll() select() submit() unload()

其他事件相关的方法

1.起切换作用的监听器

toggle(listener1, listener2, ...)

2.在元素上悬停鼠标

hover(enterHandler, leaveHandler); hover(handler)

充分利用(更多的)事件

过滤大的数据集合

通过模板复制创建元素

建立主体标记

添加新的过滤器

添加限定控件

删除不需要的过滤器和其他任务

以上这篇深入理解jQuery 事件处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Jquery基础之事件操作详解

    事件是用户操作时页面或页面加载时引发的用来完成javascript和HTML之间的交互操作.常见的元素点击事件.鼠标事件.键盘输入事件等,较传Javascript 相比JQuery增加并扩展了基本的事件处理机制,极大的增强了事件处理的能力. 一.DOM加载事件 页面加载完毕后浏览器会通过javascript为Dom元素加载事件,使用Javascript时候使用的是window.onload方法,而Jquery使用的是$(document).ready()方法,下表 展示两个事件的异同. wind

  • 你不需要jQuery(三) 新AJAX方法fetch()

    XMLHttpRequest来完成ajax有些老而过时了. fetch()能让我们完成类似 XMLHttpRequest (XHR) 提供的ajax功能.它们之间的主要区别是,Fetch API 使用了 Promises,它让接口更简单.简洁,避免了回调的复杂性,省去了使用复杂的 XMLHttpRequest API. 如果你之前未使用过Promises,你应该先看看<JavaScript Promises 用法>这篇文章. 一.基本Fetch用法 让我们先用一个例子来比较一下使用 XMLHt

  • 使用jquery获取url及url参数的简单实例

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情 首先看看单纯的通过javascript是如何来获取url中的某个参数: //获取url中的参数 function getUrlP

  • jQuery处理XML文件的几种方法

    XML和HTML都是标记语言,语法形式非常相似,同属于一个语言体系.对于HTML的解析,我是使用jQuery非常方便,其实,我们也可以用jquery解析XML,也是同样的方便. 如果你用过Java.PHP等语言解析过XML,相信会跟我有相同的感觉,那就是很麻烦.改用jQuery来读取.分析.操作XML后,给人意想不到的轻松感.下面我们来看看使用jQuery处理XML文件的几种形式方法. 使用JavaScript常规方法解析XML var xmlDoc = request.responseXML;

  • jquery中的常见问题及快速解决方法小结

    1 在开发开放聊天室的过程中,遇到使用ajax提交表单插入数据库时会插入两条数据的情况 解决办法,在ajax函数返回后,return false. $("#btn").click(function(){ $.ajax({ do something }); return false; }) 2 去除选中元素的某一个属性使用removeattr 3 javascript中与时间相关的函数有setInterval("function",millisec[,"la

  • 深入理解jQuery 事件处理

    浏览器的事件模型 DOM第0级事件模型 1.Event实例 他的属性提供了关于当前正被处理的已触发事件的大量信息.这包括一些细节,比如在哪个元素上触发的事件.鼠标事件的坐标以及键盘事件中单击了哪个键. 2.事件冒泡 当触发 dom 树中一个元素上的事件时,事件模型会检查这个元素是否已经创建了特定的事件处理器.如果是,就会调用已创建的事件处理器.然后,事件模型会检查目标元素的父元素,看其是否已经为此事件类型创建了处理器.如果是,就调用已创建的处理器,之后检查它的父元素,以及父元素的父元素,以此类推

  • jQuery事件处理的特征(事件命名机制)

    JQuery中的bind()和unbind(),提供了事件的绑定和取消机制,既可以绑定html默认支持的事件,也能够绑定自定义的事件.JQuery支持自定义事件,这显然给编程带来了极大的灵活性.下面就一起学习下,jquery事件处理的一些特性. 1.JQuery中事件可以重复绑定,不会覆盖. $("#button1").bind("click",function(){ alert("func1"); }); $("#button1&qu

  • 深入理解jQuery中的事件冒泡

    1.什么是冒泡 eg: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>事件冒泡</title> <script src="

  • 深入理解jQuery之事件移除

    有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理.比如bind()方法,可以通过unbind()方法来移除事件的效果. 比如下面的一个案例: <script type="text/javascript"> $(function(){ $('#btn').bind("click", function(){ $('#test').append("<p>我的绑定函数1</p>"); }).bind(&qu

  • 深入理解JQuery中的事件与动画

    首先,使用JQuery事件与动画的效果比使用原生js来的方便得多,当然,最重要的是考虑到了浏览器的兼容性. 事件: 基于原生js,常用事件有blur,focus,hover,mouseout,mouseover,mouseleave,ready,change,select,submit等等,不再赘述. 事件绑定: 在文档加载完成后,使用bind(type,[data],func())方法绑定事件. 合成事件: hover(enter-func,leave-func)相当于bind("mouseo

  • 深入理解jQuery事件绑定

    html: <a href="#" onclick="addBtn()">addBtn</a> <div id="mDiv"> <button class="cBtn" onclick="alert(11111)">button1</button> <button class="cBtn">button2</b

  • 深入理解jQuery之防止冒泡事件

    冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 <span>内层span元素</span> 外层div元素 </div> <div id="msg"></div> </body> 对应的jQuery代码如下: <script type="text/

  • 深入理解jquery自定义动画animate()

    在以前很长一段时间里,网页上的各种特效还需要采用flash 在进行.但最近几年里,我们已经很少看到这种情况了,绝大部分已经使用JavaScript 动画效果来取代flash.这里 说的取代是网页特效部分,而不是动画.网页特效比如:渐变菜单.渐进显示.图片轮播等:而动画比如:故事情节广告.MV 等等. 如果复制当前代码进行在本地测试的时候,请注意把不需要(其他功能展示)的代码注释掉. <!DOCTYPE html> <html xmlns="http://www.w3.org/1

  • 深入理解JQuery循环绑定事件

    深入理解JQuery循环绑定事件 <html> <head> <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> </head> <body> <script typ

  • 深入理解jquery跨域请求方法

    项目中关于ajax jsonp的使用, 出现了问题:可以成功获得请求结果,但没有执行success方法 总算搞定了,记录一下 function TestAjax() { $.ajax({ type : "get", async : false, url : "ajaxHandler.ashx", //实际上访问时产生的地址为: ajax.ashx?callbackfun=jsonpCallback&id=10 data : {id : 10}, cache

随机推荐