jQuery Event

$(document).ready()/$():

DOM完全就绪时执行注册的函数而不用等到所有的元素完全加载到浏览器后才执行。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
 7 <script type="text/javascript">
 8     $(function(){
 9         var title = $("ul li:first").attr("title");
10         alert(title);
11     });
12 </script>
13 </head>
14 <body>
15 <p title="选择你最喜欢的水果.">你最喜欢的水果是?</p>
16 <ul>
17     <li title="苹果">苹果</li>
18     <li title="橘子">橘子</li>
19     <li title="菠萝">菠萝</li>
20 </ul>
21 </body>
22 </html>

load():

在元素的onload事件中绑定处理函数,在元素的内容加载完毕后触发。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
 7 <script type="text/javascript">
 8     $(function(){
 9         $(window).load(function(){
10             alert($("ul li:last").attr("title"));
11         });
12     });
13 </script>
14 </head>
15 <body>
16 <p title="选择你最喜欢的水果.">你最喜欢的水果是?</p>
17 <ul>
18     <li title="苹果">苹果</li>
19     <li title="橘子">橘子</li>
20     <li title="菠萝">菠萝</li>
21 </ul>
22 </body>
23 </html>

bind():

用来匹配元素进行特定事件的绑定。

参数有(type [,data],fn),事件类型包括blur、focus、load、resize、scroll、unload、click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter、mouseleave、change、select、submit、keydown、keypress、keyup、error,可以使用自定义名称。数据对象包含在event.data对象中。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
 7 <script type="text/javascript">
 8     $(function(){
 9         $("ul li")
10             .bind("mouseover",function(){
11                 $(this).attr("style","background-color:#f00")
12                 })
13             .bind("mouseout",function(){
14                 $(this).attr("style","background-color:#fff").trigger("outed");
15             }).bind("outed",function(){
16                 alert("outed");
17             });
18     });
19 </script>
20 </head>
21 <body>
22 <p title="选择你最喜欢的水果.">你最喜欢的水果是?</p>
23 <ul>
24     <li title="苹果">苹果</li>
25     <li title="橘子">橘子</li>
26     <li title="菠萝">菠萝</li>
27 </ul>
28 </body>
29 </html>

hover():

用于模拟鼠标悬停事件。

参数有(enter,leave)。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
 7 <script type="text/javascript">
 8     $(function(){
 9         $("ul li").hover(function(){
10             $(this).attr("style","background-color:#0f0")
11         },function(){
12             $(this).attr("style","background-color:#fff")
13         });
14     });
15 </script>
16 </head>
17 <body>
18 <p title="选择你最喜欢的水果.">你最喜欢的水果是?</p>
19 <ul>
20     <li title="苹果">苹果</li>
21     <li title="橘子">橘子</li>
22     <li title="菠萝">菠萝</li>
23 </ul>
24 </body>
25 </html>

toggle():

用于模拟鼠标连续单击事件。

参数有(fn1,fn2,...fnn)。

 1 <script type="text/javascript">
 2     $(function(){
 3         $("ul li").toggle(function(){
 4             $(this).attr("style","background-color:#f00");
 5         },function(){
 6             $(this).attr("style","background-color:#0f0");
 7         },function(){
 8             $(this).attr("style","background-color:#00f");
 9         });
10     });
11 </script>

事件冒泡:

当一个元素嵌套在另一个元素里并且都被绑定了click事件,则每一个元素都会按照特定的顺序响应click事件。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
 7 <script type="text/javascript">
 8     $(function(){
 9         $("span").bind("click",function(){
10             var txt = $("#msg").html() + "<p>内层span元素被单击.</p>";
11             $("#msg").html(txt);
12         });
13         $("#content").bind("click",function(){
14             var txt = $("#msg").html() + "<p>外层div元素被单击.</p>";
15             $("#msg").html(txt);
16         });
17         $("body").bind("click",function(){
18             var txt = $("#msg").html() + "<p>body元素被单击.</p>";
19             $("#msg").html(txt);
20         });
21     });
22 </script>
23 </head>
24 <body>
25     <div id="content">
26         外层div元素
27         <span>内层span元素</span>
28         外层div元素
29     </div>
30     <div id="msg"></div>
31 </body>
32 </html>

事件对象:

jQuery对原始事件对象进行了封装和扩展,以便简化事件对象的使用。

event.type-获取事件类型。

event.stopPropagation()-用于停止事件冒泡,阻止事件中其他对象的事件处理函数被执行。

 1 <script type="text/javascript">
 2     $(function(){
 3         $("span").bind("click",function(event){
 4             var txt = $("#msg").html() + "<p>内层span元素被单击.</p>";
 5             $("#msg").html(txt);
 6             event.stopPropagation();
 7         });
 8         $("#content").bind("click",function(){
 9             var txt = $("#msg").html() + "<p>外层div元素被单击.</p>";
10             $("#msg").html(txt);
11         });
12         $("body").bind("click",function(){
13             var txt = $("#msg").html() + "<p>body元素被单击.</p>";
14             $("#msg").html(txt);
15         });
16     });
17 </script>

event.preventDefault()-用于阻止默认行为。

如果要同时停止冒泡和默认行为,可以在事件处理函数中返回false

event.target-获取触发事件的元素

event.relatedTarget-获取鼠标移动事件中移入或移出的元素。

event.pageX-获取光标相对于页面的X坐标,如果页面上有滚动条,则要加上滚动条的宽度。

event.pageY-获取光标相对于页面的Y坐标,如果页面上有滚动条,则要加上滚动条的高度。

event.which-在鼠标单击事件中获取鼠标的左、中、右键;在键盘事件中获取键盘的按键。

event.metaKey-获取键盘事件中的ctrl按键。

unbind():

用于移除绑定的事件。

参数有([type],[data]),如果没有参数,则删除所有绑定的事件;如果有type参数,则删除指定类型的事件;如果把在绑定时传递的处理函数作为第2个参数,则只有这个特定的事件处理函数会被删除。

one():

用于绑定只会触发一次的函数。

trigger():

用于模拟用户操作。

参数有(type,[data]),第1个参数时要触发的事件类型,第2个参数时要传递给事件处理函数的附加数据,以数组形式传递。

triggerHandler():

用于触发元素上绑定的特定事件,同时取消浏览器对此事件的默认操作。

事件命名空间:

用于把为元素绑定的多个事件类型用命名空间规范起来,以方便集合操作。

$().trigger("name!"):

用于匹配所有不包含在命名空间中的click方法。

时间: 2024-10-13 19:47:08

jQuery Event的相关文章

jQuery Event.which 属性详解

jQuery Event.which 属性详解 which属性用于返回触发当前事件时按下的键盘按键或鼠标按钮. 对于键盘和鼠标事件,该属性用于确定你按下的是哪一个键盘按键或鼠标按钮. which属性对DOM原生的event.keyCode和event.charCode进行了标准化. 适用的事件类型主要有键盘事件:keypress.keydown.keyup,以及鼠标事件:mouseup.mousedown. 该属性属于jQuery的Event对象(实例). 语法 jQuery 1.1.3 新增该

jQuery.event.move

http://stephband.info/jquery.event.move/ Move events movestart Fired following touchmove or mousemove, when the touch (or mouse) crosses a threshold distance from the position of the mousedown or touchstart. move Fired on every animation frame where

javascript事件之:jQuery.event.dispatch详解

jQuery.event.dispatch,字面意思是事件分发.就是执行绑定的函数. 在jQuery.event.add中, //1, jQuery.event.add中 jQuery.event.dispatch.apply( eventHandle.elem, arguments ) //2, jQuery.event.simulate中 jQuery.event.dispatch.call( elem, e ); 我们来看看jQuery.event.dispatch的源码,看看其实现了什么

javascript事件之:jQuery.event.add事件详解

我们已经了解过jQuery.event下的方法,回顾一下 jQuery.event = { global: {}, add: function( elem, types, handler, data, selector ) {}, remove: function( elem, types, handler, selector, mappedTypes ) {}, trigger: function( event, data, elem, onlyHandlers ) {}, dispatch:

jQuery event的复制粘贴的坑

jQuery为了兼容性会把系统暴露出来的event重新整理一遍,但是复制粘贴的event就被丢掉了. 所以要在所有原生浏览器想实现复制粘贴,大家都用flash实现了.其实只要用原生的方法捕获事件就ok.简单来个方法. var EventUtil = { addHandler: function (element, type, handler) { if(!element) return false; if (element.addEventListener) { element.addEvent

jQuery Event add [ 源码分析 ]

/* * Helper functions for managing events -- not part of the public interface. * Props to Dean Edwards' addEvent library for many of the ideas. */ jQuery.event = { add: function( elem, types, handler, data, selector ) { var elemData, eventHandle, eve

jQuery.event详细解析

介绍之前先介绍jQuery的一个方法 jQuery.event.fix(event || window.event); 此方法个浏览器的event对象转换为 jQuery.event; 如果您的事件是通过jQuery方法绑定的,就不需要进行转换了! jQuery在遵循W3C规范的情况下,对事件的常用属性进行了封装,使得事件处理在各大浏览器下都可以正常的运行而不需要进行浏览器类型判断. 1.event.type属性该方法作用是可以获取到时间的类型 $("a").click(functio

jQuery事件之:jQuery.event.trigger

现在我们来看看事件机制中的主动触发,我们要分析的是jQuery.event.trigger. 先来看看它在jQ源码中的调用. // 1, 在jQuery.event.simulate中 jQuery.event.simulate = function(){ ... if ( bubble ) { jQuery.event.trigger( e, null, elem ); } ... } // 2, 事件的实例方法中 jQuery.fn.extend({ trigger: function( t

javascript事件之:jQuery.event.remove事件详解

之前已经介绍过jQuery.event.add,现在我们来看看jQuery.event.remove 先上代码 /* elem: 处理的元素 types: 移除的事件 handler: 移除的方法 selector: 委托的元素 mappedTypes: */ remove: function( elem, types, handler, selector, mappedTypes ) { var j, origCount, tmp, events, t, handleObj, special,