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()  

预先管理事件处理器(deprecated)

  1. 创建live事件处理

    live(eventType, data, listener)

  2. 删除live事件处理

    die(eventType, listener)

触发事件处理器

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)

充分利用(更多的)事件

过滤大的数据集合

通过模板复制创建元素

建立主体标记

添加新的过滤器

添加限定控件

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

总是有改进的余地

时间: 2025-01-04 22:52:18

jQuery 事件处理的相关文章

Unit02: jQuery事件处理 、 jQuery动画

Unit02: jQuery事件处理 . jQuery动画 jQuery实现购物车案例 <!DOCTYPE html> <html> <head> <title>购物车</title> <meta charset="utf-8" /> <style type="text/css"> h1 { text-align:center; } table { margin:0 auto; wi

jQuery事件处理(一)

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>jQuery 事件处理(一)</title> 6 <script type="text/javascript" src="jquery-1.7.2.min.js"></script> 7 <script ty

jquery 事件处理handler函数的参数

jquery 事件处理handler函数的参数  在如下的函数中,我们在处理jquery里经常使用: $( "#foo" ).bind( "click", function() { alert( $( this ).text() ); }); click的handler处理函数一般为function(){},不传参数.那么,这个函数可以接收参数么,内置了什么对象,有什么返回值,怎么获得事件绑定的对象? 1.第一个参数event对象,在function函数里,实际上第

jQuery 事件处理API

click()事件 focus() 和 blur()事件不支持冒泡,focusin和focusout支持 mouseenter和mouseleave不支持冒泡 mouseover和mouseout支持 hover()方法用来给mouseenter和mouseleave事件注册处理程序 hover(handlerIn,handleOut) : Bind two handlers to the matched elements, to be executed when the mouse point

jQuery事件处理

1.使用jQuery实现事件绑定 语法: $obj.bind(事件类型,事件处理函数) 如: $obj.bink('click',fn); 简写形式 $obj,click(fn); 注: $obj.click()则代表触发了click事件. 2.获得事件对象event 只需要为事件处理函数传递任意一个参数 如: $obj.click(function(e){...}) e就是事件对象,但已经经过jQuery对底层事件对象的封装 封装后的事件对象可以方便的兼容各浏览器 3.事件对象常用的属性 获取

jquery事件处理函数的参数问题:event对象和自定义参数

jquery中如果需要给按钮绑定click事件处理函数,那么我们可以使用如下的代码: $("#button1").click( function() { alert("I was clicked."); } ); 一般我们都会按照上面的写法,注册事件处理函数,很少给处理函数传递参数.但是如果我们需要事件更详细的信息,比如事件发生时鼠标的位置等,那么我们就必须要使用事件对象了. 在IE和FF浏览器下,我们可以使用event对象拿到更多的信息.在jquery中拿到eve

三、jQuery事件处理

一.加载DOM 在页面加载完毕后,浏览器会通过Javascript为DOM元素添加事件.在常规的Javascript代码中,通常使用window.onload方法,而在jQuery中,使用的是$(document).ready()方法. 1.执行时机 $(document).ready()方法和window.load方法有相似的功能,但是在执行时机方面是有区别的.window.load方法是在网页中所有元素(包括元素的所有关联文件)完全加载到浏览器后才执行,即Javascript此时才可以访问网

jQuery事件处理,节点

事件处理: 1.页面加载后的执行 类似于window.onload 但不同于 window.onload jQuery加载后执行的特点: 在DOM树加载完毕的时候就开始执行 $(document).ready( function(){ //页面的初始化操作 //DOM树加载完成后就开始运行 } ); $().ready( function(){ //页面的初始化操作 //DOM树加载完成后就开始运行 } ); $( function(){ //页面的初始化操作 //DOM树加载完成后就开始运行

219 jQuery事件处理: off() 解绑事件,trigger() 、triggerHandler() 自动触发事件

? 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑.jQuery 为我们提供 了多种事件解绑方法:die() / undelegate() / off() 等,甚至还有只触发一次的事件绑定方法 one(),在这里我们重点讲解一下 off() ; 语法 演示代码 <body> <div></div> <ul> <li>我们都是好孩子</li> <li>我们都是好孩子<