jQuery 事件 keypress click mouseover blur load ......

事件流模型包括冒泡型事件流捕获型事件流,前者从下到上一级一级的触发,后者从上到下一级级的触发。但是IE浏览器不支持捕获型事件流,所以大部分还是冒泡型事件流。

1.传统的 JavaScript 事件

(1)鼠标事件

  onclick(单击) ondblclick(双击) onmousedown(按下鼠标左键) onmouseup(释放鼠标)

  onmouseover(光标移动到某对象上) onmousemove(鼠标移动) onmouseout(光标离开某对象)

(2)键盘事件

  onkeypress(键被按下以后) onkeydown(键被按下时) onkeyup(释放键)

(3)页面事件

  onerror(出现错误) onload(页面内容完成) onresize(浏览器窗口大小改变)

  onscroll(滚动条位置变化) onunload(当前页面将被改变时)

(4)表单事件

  onblur(当前元素失去焦点) onchage(当前元素失去焦点且元素内容发生变化时)

  onfocus(某个元素获得焦点时) onsubmit(一个表单被递交时)

2.jQuery 事件

(1)DOM 载入事件

  $(document).ready(hanlder)

  $().ready(handler)

  $(handler)

(2)键盘事件

  keypress(键被按下以后) keydown(键被按下时) keyup(释放键)

(3)鼠标事件

  click(单击) dblclick(双击) mousedown(按下鼠标左键) mouseup(释放鼠标)

  mouseover(光标移动到某对象上) mousemove(鼠标移动) mouseout(光标离开某对象)

(4)表单事件

  blur(当前元素失去焦点) chage(当前元素失去焦点且元素内容发生变化时)

  focus(某个元素获得焦点时) submit(一个表单被递交时) select(控件内容被选中时)

  focusin(当前元素或其子元素获得焦点时) focusout(当前元素或其子元素失去焦点时)

   其中,select 的实例如下,当选中第一个文本框中的文字时,第二个文本框自动显示选中的文本。

  

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>Hello, jQuery!</title>
 5     <script type="text/javascript" src="../js/jquery-1.7.2.js"></script>
 6     <script type="text/javascript">
 7         $(document).ready(function(){
 8             $("#input1").select(function(){
 9                 var selection = document.selection;
10                 if(selection && selection.type == 'Text'){
11                     var word = selection.createRange();
12                     var text = word.text;
13                     $("#input2").val(text);
14                 }
15             });
16         });
17     </script>
18   </head>
19   
20   <body>
21       <input id="input1" type="text"/><br/><br/>
22       <input id="input2" type="text"/>
23   </body>
24 </html>

效果如下:

  另外,focusin 和 focusout 是jQuery 扩展的非常有用的事件。其实例如下:

View Code
 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>Hello, jQuery!</title>
 5     <script type="text/javascript" src="../js/jquery-1.7.2.js"></script>
 6     <style type="text/css">
 7         body{ padding:20px; }
 8         td{ font-size:13px; padding:3px; }
 9         input{ margin:0 5px; }
10     </style>
11     <script type="text/javascript">
12         $(document).ready(function(){
13             $("td span").css('color','#aaa');  //初始化表格里的span元素内的字体颜色为浅灰
14 
15         $("td").focusin(function() {
16             /* 子元素获得焦点时 */
17               $(this).find("span")
18                   .css('color','#a0a')
19                 .css('font-weight','600');  //设置当前表格中的span元素颜色为黑色和粗细程度为600
20             });
21 
22         $("td").focusout(function() {
23             /* 子元素失去焦点时 */
24               $(this).find("span")
25                 .css('color','#aaa')
26                 .css('font-weight','100');  //设置当前表格中的span元素颜色为浅灰和粗细程度为100
27     });
28         });
29     </script>
30   </head>
31   
32   <body>
33       <h2>用户注册</h2>
34     <form>
35         <table cellspacing="0" border="0">
36             <tr>
37                 <td>用户名:</td>
38                 <td><input /><span>6-20位字母、数字、下划线组合</span></td>
39             </tr>
40             <tr>
41                 <td>密 码:</td>
42                 <td><input /><span>5-16位任意字符</span></td>
43             </tr>
44             <tr>
45                 <td>姓 名:</td>
46                 <td><input /><span>请填写您的直实姓名</span></td>
47             </tr>
48             <tr>
49                 <td>年 龄:</td>
50                 <td><input /><span>请填写您的真实年龄</span></td>
51             </tr>
52             <tr>
53                 <td>邮 箱:</td>
54                    <td><input /><span>请填写您的电子邮件地址,确认身份时需要</span></td>
55             </tr>
56             <tr>
57                 <td></td>
58                 <td><input type="button" value="Submit" /></td>
59             </tr>
60         </table>
61     </form>
62   </body>
63 </html>

效果如下,当姓名输入框处于焦点状态时,其右侧的说明文本高亮显示:

(5)其他事件

  load(当该元素加载就绪后触发)  unload(当该元素卸载后触发) 

  error(当该元素发生错误时触发)  resize(浏览器大小发生改变时触发)  scroll(滚动条位置改变时触发)

  jQuery 事件具有集合特性。对某个DOM元素绑定多个事件,在JavaScript中,只对最后一个事件进行绑定,而在jQeury中队所有事件进行绑定。

posted @ 2012-07-17 14:50  lihui_yy  阅读(2114)  评论(0编辑  收藏  举报