jQuery 事件

xiaoxiao2021-02-28  76

什么是事件

页面对不同访问者的响应叫做事件。

事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。

常见 DOM 事件: 鼠标事件键盘事件表单事件文档/窗口事件clickkeypresssubmitloaddblclickkeydownchangeresizemouseenterkeyupfocusscrollmouseleave blurunload

 

事件绑定

文档装载完成后,如果打算为元素绑定事件来完成某些操作,则可以使用on()方法来对被选元素及子元素上添加一个或多个事件处理程序。

注意: 自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品 该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。 提示: 如需移除事件处理程序,请使用Off()方法。 提示:如需添加只运行一次的事件然后移除,请使用one()方法。

语法

$(selector).on(event,childSelector,data, function,map)

 

参数描述event必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值。必须是有效的事件。childSelector可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。data可选。规定传递到函数的额外数据。function可选。规定当事件发生时运行的函数。map规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

范例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test</title> <style type="text/css"> *{margin:0;padding:0;}     body { font-size: 13px; line-height: 130%; padding: 60px } #panel { width: 300px; border: 1px solid #0050D0 } .head { height:24px;line-height:24px;text-indent:10px;background: #96E555; cursor: pointer;width:100%; } .content { padding: 10px; text-indent:24px; border-top: 1px solid #0050D0;display:block;display:none; } </style> <script src="scripts/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $( function(){      //  $("#panel h5.head").on("mouseover",function(){           //  $(this).next().show();      //  }).on("mouseout",function(){           //  $(this).next().hide();      //  })           //  与上一段代码等价,只是简化了代码     $("#panel h5.head").on("mouseover mouseout", function(){          $( this).next().toggle();     }); }) </script> </head> <body> <div id="panel">     <h5 class="head">什么是jQuery?</h5>     <div class="content">         jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由 John Resig 创建于2006年1月的开源项目。jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax。它独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。     </div> </div> </body> </html> View Code

 

移除事件

off() 方法通常用于移除通过 on() 方法添加的事件处理程序。

自 jQuery 版本 1.7 起,off() 方法是 unbind()die()undelegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。

注意:如需移除指定的事件处理程序,当事件处理程序被添加时,选择器字符串必须匹配 on() 方法传递的参数。

提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。

$(selector).off(event,selector, function(eventObj),map)

 

事件对象的属性和方法

 

方法描述event.currentTarget在事件冒泡阶段内的当前 DOM 元素event.data包含当前执行的处理程序被绑定时传递到事件方法的可选数据event.delegateTarget返回当前调用的 jQuery 事件处理程序所添加的元素event.isDefaultPrevented()返回指定的 event 对象上是否调用了   event.preventDefault()event.isImmediatePropagationStopped()返回指定的 event 对象上是否调用了   event.stopImmediatePropagation()event.isPropagationStopped()返回指定的 event 对象上是否调用了   event.stopPropagation()event.namespace返回当事件被触发时指定的命名空间event.pageX返回相对于文档左边缘的鼠标位置event.pageY返回相对于文档上边缘的鼠标位置event.preventDefault()阻止事件的默认行为event.relatedTarget返回当鼠标移动时哪个元素进入或退出event.result包含由被指定事件触发的事件处理程序返回的最后一个值event.stopImmediatePropagation()阻止其他事件处理程序被调用event.stopPropagation()阻止事件向上冒泡到 DOM 树,阻止任何父处理程序被事件通知event.target返回哪个 DOM 元素触发事件event.timeStamp返回从 1970 年 1 月 1 日到事件被触发时的毫秒数event.type返回哪种事件类型被触发event.which

返回指定事件上哪个键盘键或鼠标按钮被按下

 

常用jQuery事件的范例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test</title> <script src="scripts/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $( function(){     $("ul li:eq(0)").click( function(){         alert("单击操作");     });          $("ul li:eq(1)").dblclick( function(){         alert("双击操作");     });     $("p").mouseenter( function(){         $("#result").val("mouseenter");     }).mouseleave( function(){         $("#result").val("mouseleave");     }).mousedown( function(){         $("#result").val("mousedown");     }).mouseup( function(){         $("#result").val("mouseup");     });          $("#result").focus( function(){         $( this).css("background-color","#cccccc");     }).blur( function(){         $( this).css("background-color","#ffffff");     });  }) </script> </head> <body> <ul>     <li>单击我</li>     <li>双击我</li>     <div>              <p id="p1">请在此处操作鼠标,文本编辑框内容会变化。如果点击文本框,文本框颜色会变化。</p>         <input type="text" id="result"/>     </div> </ul> </body> </html> View Code

 

转载请注明原文地址: https://www.6miu.com/read-65399.html

最新回复(0)