jQuery事件

来源:互联网 发布:炒股书籍推荐 知乎 编辑:程序博客网 时间:2024/05/16 02:59

1. 事件机制 
    事件中的冒泡现象:

Js代码  收藏代码
  1. <body>   
  2.     <div>   
  3.         <input id="btnShow" type="button" value="点击" class="btn" />   
  4.     </div>   
  5.     <div class="clsShow"></div>   
  6. </body>  
  7.    
  8. <script type="text/javascript">   
  9.         $(function() {   
  10.             var intI = 0; //记录执行次数   
  11.             $("body,div,#btnShow").click(function(event) {//点击事件   
  12.                 intI++; //次数累加   
  13.                 $(".clsShow")   
  14.                 .show()//显示   
  15.                 .html("您好,欢迎来到jQuery世界!")//设置内容   
  16.                 .append("<div>执行次数 <b>" + intI + "</b> </div>"); //追加文本   
  17.                 //event.stopPropagation();//阻止冒泡过程   
  18. //return false;   
  19.             })   
  20.         })   
  21. </script>   

 

    点击按钮时,会显示执行3次。虽然点击的是按钮,按钮外围的div和body元素也会被触发,整个事件波及的过程就像水泡一样向外冒,故称为冒泡过程。 
    可通过event.stopPropagaton()或return false停止冒泡过程。

 

2. 页面载入事件 
    ready()和onload的区别:
    ready()的几种写法:

Js代码  收藏代码
  1. $(document).ready(function(){….})   
  2. $(function(){….})   
  3. jQuery(document).ready(function(){….})   
  4. jQuery(function(){….})   

 

3. 绑定事件 
    bind(type,[data],fn),type是事件类型,其值可为:blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error. 
    data是作为event.data属性值传递给事件对象的额外数据对象,fn是事件处理函数。

Js代码  收藏代码
  1. $(function() {   
  2.             $("#btnBind").bind("click mouseout"function() {   
  3.                 $(this).attr("disabled""disabled"); //按钮不可用   
  4.             })   
  5. })   

 
    可以通过传入一个映射,对所选对象绑定多个事件处理函数:

Js代码  收藏代码
  1. $(".txt").bind({ focus: function() {   
  2.             $("#divTip")   
  3.             .show()//显示   
  4.             .html("执行的是focus事件");//设置文本   
  5.             },   
  6.             change: function() {   
  7.             $("#divTip")   
  8.             .show()//显示   
  9.             .html("执行的是change事件");//设置文本   
  10.             }   
  11. })   

      data参数的应用:

Js代码  收藏代码
  1. var message = "执行的是focus事件";   
  2. $(".txt").bind("focus", { msg: message }, function(event) {   
  3.                 $("#divTip")   
  4.                 .show()//显示   
  5.             .html(event.data.msg); //设置文本   
  6.             });   
  7.             message = "执行的是change事件";   
  8.             $('.txt').bind('change', { msg: message }, function(event) {   
  9.                 $("#divTip").show()//显示   
  10.             .html(event.data.msg); //设置文本   
  11. });   

  
   4. 切换事件 
    有两个方法用于事件切换:hover()和toggle() 
    hover(over,out)方法可以使元素在鼠标悬停与鼠标移出的事件中进行切换 
    $("a").hover(function(){},function(){}) 
    当鼠标移动到所选元素上面时,执行第一个函数,移出元素时,执行指定的第二个元素 
    等价于mouserenter和mouseleave事件 
    $("a").mouseenter(function(){}) 
    $("a").mouseleave(function(){}) 

    toggle()方法,可以依次调用N个指定的函数,直到最后一个函数,然后重复对这些函数轮番调用

Js代码  收藏代码
  1. $(function() {   
  2.             $("img").toggle(function() {   
  3.                 $("img").attr("src""Images/img05.jpg");   
  4.                 $("img").attr("title"this.src);   
  5.             }, function() {   
  6.                 $("img").attr("src""Images/img06.jpg");   
  7.                 $("img").attr("title"this.src);   
  8.             }, function() {   
  9.                 $("img").attr("src""Images/img07.jpg");   
  10.                 $("img").attr("title"this.src);   
  11.             })   
  12. })   

 

5. 移除事件 
    unbind([type],[fn]) 如果该方法没有参数,则移除所有绑定的时间,如果带有参数type,则移除该参数所指定的事件类型,如果带有参数fn,则只移除绑定时指定的函数fn。

Js代码  收藏代码
  1. $(function() {   
  2.             function oClick() { //自定义事件   
  3.                 $("#divTip").append("<div>按钮二的单击事件</div>");   
  4.             }   
  5.             $("input:eq(0)").bind("click"function() { //绑定单击事件   
  6.                 $("#divTip").append("<div>按钮一的单击事件</div>");   
  7.             });   
  8.             $("input:eq(1)").bind("click", oClick); //绑定自定义事件   
  9.             $("input:eq(2)").bind("click"function() {   
  10.              $("input").unbind("click",oClick); //只移除绑定是指定函数oClick时间的元素   
  11.             });   
  12. })   

 
6. 其它事件 
    one(type,[data],fn)方法是为所选的元素绑定一个仅触发一次的处理函数,首次触发有效,再次触发无效

Js代码  收藏代码
  1.  $(function() {   
  2.             function btn_Click() { //自定义事件   
  3. alert(this.value);   
  4.                 this.value = "010-12345678"   
  5.             }   
  6.             $("input").one("click", btn_Click); //绑定自定义事件   
  7. })   

  
    如果换成$("input").bind("click", btn_Click);每次点击都会有弹出框

    trigger(type,[data])方法,一般在DOM加载完毕后,自动执行一些人性化的操作,如:文本框处于焦点中

Js代码  收藏代码
  1. $(function() {   
  2.             var oTxt = $("input"); //获取文本框   
  3.             oTxt.trigger("focus/select"); //自动选中文本框   
  4.             oTxt.bind("btn_Click"function() {//编写文本框自定义事件   
  5.                 var txt = $(this).val(); //获取自身内容   
  6.                 $("#divTip").html(txt); //显示在页面中   
  7.             })   
  8.             oTxt.trigger("btn_Click"); //自动触发自定义事件   
  9. })   

  
    如果不希望trigger()事件自动执行,可使用triggerHandler()方法。 
7. 表单应用 
    功能: 
    - 邮箱地址文本框 
    - 邮箱地址文本框获取焦点、丢失焦点时样式的变换 
    - 邮箱名格式的el表达式验证 
8. 下拉列表应用 
    功能: 

    - 多个列表框的联动效果 
    - 获取下拉框的选择项$(“#select option:selected”).text()/val() 
    - 为select元素添加option项 
9. 列表应用 
    功能: 
    - 鼠标滑动效果的菜单导航条 
    - 浮动提示框功能 
    - 浮动提示框带箭头 
    - 弹出菜单,鼠标离开不消失处理 
10. 选项卡应用 
    功能: 
    - 单击某个选项卡,其下方区域显示对应的内容,其它内容隐藏 
    - 选项卡的背景色与内容的背景色浑然一体 
    - siblings()的用法 
11. 提示框效果 
    功能: 
    - 弹出框有title 关闭,确定和取消按钮 
    - 弹出框总是居中显示,页面大小发生变化时也居中 
    - 弹出框时,背景遮挡效果