目录

jQuery - 事件( Events)

我们可以使用事件创建动态网页。 事件是Web应用程序可以检测到的操作。

以下是事件的例子 -

  • 鼠标单击
  • 网页加载
  • 将鼠标移到元素上
  • 提交HTML表单
  • 键盘上的按键等

触发这些事件后,您可以使用自定义函数对事件执行任何操作。 这些自定义函数调用事件处理程序。

绑定事件处理程序

使用jQuery事件模型,我们可以使用bind()方法在DOM元素上建立事件处理程序,如下所示 -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $('div').bind('click', function( event ){
               alert('Hi there!');
            });
         });
      </script>
      <style>
         .div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
      </style>
   </head>
   <body>
      <p>Click on any square below to see the result:</p>
      <div class = "div" style = "background-color:blue;">ONE</div>
      <div class = "div" style = "background-color:green;">TWO</div>
      <div class = "div" style = "background-color:red;">THREE</div>
   </body>
</html>

此代码将使division元素响应click事件; 当用户此后在此部门内点击时,将显示警报。

这将产生以下结果 -

新页面打开

bind()命令的完整语法如下 -

<i>selector</i>.bind( eventType[, eventData], handler)

以下是参数的说明 -

  • eventType - 包含JavaScript事件类型的字符串,例如单击或提交。 有关事件类型的完整列表,请参阅下一节。

  • eventData - 这是可选参数,是将传递给事件处理程序的数据映射。

  • handler - 每次触发事件时执行的函数。

删除事件处理程序

通常,一旦建立了事件处理程序,它就会在页面的剩余生命周期内保持有效。 您可能需要删除事件处理程序。

jQuery提供了unbind()命令来删除现有的事件处理程序。 unbind()的语法如下 -

<i>selector</i>.unbind(eventType, handler)
or 
<i>selector</i>.unbind(eventType)

以下是参数的说明 -

  • eventType - 包含JavaScript事件类型的字符串,例如单击或提交。 有关事件类型的完整列表,请参阅下一节。

  • handler - 如果提供,则标识要删除的特定侦听器。

事件类型

Sr.No. 事件类型和描述
1

blur

元素失去焦点时发生。

2

change

元素更改时发生。

3

click

单击鼠标时发生。

4

dblclick

鼠标双击时发生。

5

error

在加载或卸载等错误时发生。

6

focus

元素获得焦点时发生。

7

keydown

按下键时发生。

8

keypress

按下并释放按键时发生。

9

keyup

释放密钥时发生。

10

load

加载文档时发生。

11

mousedown

按下鼠标按钮时发生。

12

mouseenter

鼠标进入元素区域时发生。

13

mouseleave

鼠标离开元素区域时发生。

14

mousemove

鼠标指针移动时发生。

15

mouseout

鼠标指针移出元素时发生。

16

mouseover

鼠标指针在元素上移动时发生。

17

mouseup

释放鼠标按钮时发生。

18

resize

调整窗口大小时发生。

19

scroll

滚动窗口时发生。

20

select

选择文本时发生。

21

submit

提交表单时发生。

22

unload

卸载文档时发生。

事件对象

回调函数只接受一个参数; 当调用处理程序时,JavaScript事件对象将通过它传递。

事件对象通常是不必要的,并且省略了参数,因为当处理程序被绑定以确切知道触发处理程序时需要执行的操作时,通常可以使用足够的上下文,但是有一些属性需要访问。

事件属性

Sr.No. 财产和描述
1

altKey

如果在触发事件时按下了Alt键,则设置为true,否则设置为false。 在大多数Mac键盘上,Alt键标记为Option。

2

ctrlKey

如果在触发事件时按下Ctrl键,则设置为true,否则设置为false。

3

data

在建立处理程序时,该值(如果有)作为第二个参数传递给bind()命令。

4

keyCode

对于keyup和keydown事件,这将返回按下的键。

5

metaKey

如果在触发事件时按下了Meta键,则设置为true,否则设置为false。 Meta键是PC上的Ctrl键和Mac上的Command键。

6

pageX

对于鼠标事件,指定事件相对于页面原点的水平坐标。

7

pageY

对于鼠标事件,指定事件相对于页面原点的垂直坐标。

8

relatedTarget

对于某些鼠标事件,标识光标在触发事件时离开或输入的元素。

9

screenX

对于鼠标事件,指定事件相对于屏幕原点的水平坐标。

10

screenY

对于鼠标事件,指定事件相对于屏幕原点的垂直坐标。

11

shiftKey

如果在触发事件时按下Shift键,则设置为true,否则设置为false。

12

target

标识触发事件的元素。

13

timeStamp

创建事件时的时间戳(以毫秒为单位)。

14

type

对于所有事件,指定触发的事件类型(例如,单击)。

15

which

对于键盘事件,指定导致事件的键的数字代码,对于鼠标事件,指定按下哪个按钮(左侧为1,中间为2,右侧为3)。

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $('div').bind('click', function( event ){
               alert('Event type is ' + event.type);
               alert('pageX : ' + event.pageX);
               alert('pageY : ' + event.pageY);
               alert('Target : ' + event.target.innerHTML);
            });
         });
      </script>
      <style>
         .div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
      </style>
   </head>
   <body>
      <p>Click on any square below to see the result:</p>
      <div class = "div" style = "background-color:blue;">ONE</div>
      <div class = "div" style = "background-color:green;">TWO</div>
      <div class = "div" style = "background-color:red;">THREE</div>
   </body>
</html>

这将产生以下结果 -

新页面打开

事件方法

有一个可以在事件对象上调用的方法列表 -

Sr.No. 方法和描述
1 preventDefault()

阻止浏览器执行默认操作。

2 isDefaultPrevented()

返回是否曾在此事件对象上调用event.preventDefault()。

3 stopPropagation()

停止将事件冒泡到父元素,从而阻止任何父处理程序被通知事件。

4 isPropagationStopped()

返回是否曾在此事件对象上调用event.stopPropagation()。

5 stopImmediatePropagation()

停止执行其余处理程序。

6 isImmediatePropagationStopped()

返回是否曾在此事件对象上调用event.stopImmediatePropagation()。

事件操纵方法

下表列出了重要的事件相关方法 -

Sr.No. 方法和描述
1 bind(type,[data],fn)

将处理程序绑定到每个匹配元素的一个或多个事件(如单击)。 也可以绑定自定义事件。

2 off(events [,selector] [,handler(eventObject)])

这与live相反,它删除了绑定的直播事件。

3 hover( over, out )

模拟悬停,例如在对象上移动鼠标和关闭对象。

4 on(events [,selector] [,data],handler)

将处理程序绑定到所有当前和未来匹配元素的事件(如单击)。 也可以绑定自定义事件。

5 一个(类型,[数据],fn)

将处理程序绑定到要为每个匹配元素执行一次的一个或多个事件。

6 ready( fn )

绑定要在DOM准备好遍历和操作时执行的函数。

7 trigger( event, [data] )

在每个匹配的元素上触发事件。

8 triggerHandler( event, [data] )

触发元素上的所有绑定事件处理程序。

9 unbind([type],[fn])

这与bind相反,它从每个匹配的元素中删除绑定事件。

事件助手方法

jQuery还提供了一组事件帮助函数,可用于触发事件以绑定上述任何事件类型。

触发方法

以下示例将触发所有段落上的模糊事件 -

$("p").blur();

绑定方法

以下示例将绑定所有“div”上的click事件 -

$("div").click( function () { 
   // do something here
});
Sr.No. 方法和描述
1

blur( )

触发每个匹配元素的模糊事件。

2

blur( fn )

将函数绑定到每个匹配元素的blur事件。

3

change( )

触发每个匹配元素的change事件。

4

change( fn )

将函数绑定到每个匹配元素的change事件。

5

click( )

触发每个匹配元素的click事件。

6

click( fn )

将函数绑定到每个匹配元素的click事件。

7

dblclick( )

触发每个匹配元素的dblclick事件。

8

dblclick( fn )

将函数绑定到每个匹配元素的dblclick事件。

9

error( )

触发每个匹配元素的错误事件。

10

error( fn )

将函数绑定到每个匹配元素的错误事件。

11

focus( )

触发每个匹配元素的焦点事件。

12

focus( fn )

将函数绑定到每个匹配元素的焦点事件。

13

keydown( )

触发每个匹配元素的keydown事件。

14

keydown( fn )

将函数绑定到每个匹配元素的keydown事件。

15

keypress( )

触发每个匹配元素的按键事件。

16

keypress( fn )

将函数绑定到每个匹配元素的按键事件。

17

keyup( )

触发每个匹配元素的keyup事件。

18

keyup( fn )

将函数绑定到每个匹配元素的keyup事件。

19

load( fn )

将函数绑定到每个匹配元素的load事件。

20

mousedown( fn )

将函数绑定到每个匹配元素的mousedown事件。

21

mouseenter( fn )

将函数绑定到每个匹配元素的mouseenter事件。

22

mouseleave( fn )

将函数绑定到每个匹配元素的mouseleave事件。

23

mousemove( fn )

将函数绑定到每个匹配元素的mousemove事件。

24

mouseout( fn )

将函数绑定到每个匹配元素的mouseout事件。

25

mouseover( fn )

将函数绑定到每个匹配元素的mouseover事件。

26

mouseup( fn )

将函数绑定到每个匹配元素的mouseup事件。

27

resize( fn )

将函数绑定到每个匹配元素的resize事件。

28

scroll( fn )

将函数绑定到每个匹配元素的scroll事件。

29

select( )

触发每个匹配元素的select事件。

30

select( fn )

将函数绑定到每个匹配元素的select事件。

31

submit( )

触发每个匹配元素的submit事件。

32

submit( fn )

将函数绑定到每个匹配元素的submit事件。

33

unload( fn )

将函数绑定到每个匹配元素的unload事件。

<上一篇.jQuery - DOM
jQuery - AJAX.下一篇>
↑回到顶部↑
WIKI教程 @2018