我是靠谱客的博主 单纯裙子,这篇文章主要介绍jq06--jq事件对象、event、data、pageX/pageY、target、keyCode、which,现在分享给大家,希望可以做个参考。

1   jQuery事件对象介绍

概述:jq事件对象可以简单的理解成对象发生完绑定事件后每个对象所对应的处理函数的event参数

事件处理函数不给event参数虽然也可打印出event,但是打印出来的对象缺少很多数据(下面可自行再控制台打开查找不同)

建议在事件处理函数上添加event参数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .box{ width: 300px; padding: 50px 0; background-color: pink; cursor: pointer; text-align: center; } </style> </head> <body> <div class="event"> <button class="but">jq事件对象</button> <div class="box"> <p>https://blog.csdn.net/muzidigbig</p> <p>jq事件对象</p> </div> <p>你既然认准一条道路,何必去打听要走多久。</p> </div> </body> <script src="jquery-3.3.1.js"></script> <script> //事件对象打印出event事件对象 $('.but').bind('click',['name','muzidigbig'],function (event) { console.log('jq事件对象:'); console.log(event); //动画的回调函数传参无意义;打印出undefind $('.box').slideUp(2000,function (event) { console.log(event); $('.box').slideDown(2000); }); }); </script> </html>


常用事件对象中的属性:

    event.data                            传递给事件处理程序的额外数据

    event.currentTarget             等同于this,在事件冒泡阶段中的当前DOM元素

        对于非授权的事件处理程序,直接连接到一个元素,event.delegateTarget 总是等价于event.currentTarget.

    event.pageX/event.pageY                         鼠标相对于文档左部边缘的位置/最顶部的位置

    event.target                         触发事件源(获得触发这个事件的dom对象),不一定===this

    event.type                            事件类型:click,dbclick…

    event.which                         鼠标的按键类型:左1 中2 右3  默认0

    event.keyCode                     键盘按键代码(返回值number)

    event.timeStamp                 这个属性返回事件触发时距离1970年1月1日的毫秒数。

    event.stopPropagation(); 阻止事件冒泡

    event.preventDefault();      阻止默认行为


1.event.data

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script> //事件对象中的属性;下面bind()中的数组就是数据对象的额外数据对象 $('.but').bind('click',{'name':'muzidigbig'},function (event) { console.log('jq事件对象:'); console.log(event); //打印出额外数据 event.data console.log(event.data); //从额外数据中取值 event.data对象中的k console.log(event.data.name); }) </script>

2.event.currentTarget

复制代码
1
2
3
4
5
6
7
8
9
<script> $('.but').bind('click',{'name':'muzidigbig'},function (event) { console.log('jq事件对象:'); console.log(event); console.log(event.currentTarget == this);//打印出true }) </script>

3.event.pageX/event.pageY     鼠标相对于绑定对象X/Y轴的距离

复制代码
1
2
3
4
5
6
7
8
9
10
<script> //pageX鼠标相对于绑定对象最边缘的距离 $('.box').on('mouseover',{'name':'muzidigbig'},function (event) { console.log('jq事件对象:'); console.log(event); console.log("X:"+event.pageX+"Y:"+event.pageY); }) </script>

4.event.target    触发事件源(获得触发这个事件的dom对象)    event.type    获得事件类型

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script> //事件触发源获得触发这个事件的dom对象 $('.box').on('mouseenter',{'name':'muzidigbig'},function (event) { console.log('jq事件对象:'); console.log(event); console.log(event.target); // event.type获得事件类型 console.log(event.type); }) </script>

5. event.which     鼠标的按键类型:左1 中2 右3  默认0

复制代码
1
2
3
4
5
6
7
8
$(document).on('keydown',{'name':'muzidigbig'},function (event) { console.log('jq事件对象:'); console.log(event); console.log(event.which); })
6.event.keyCode     键盘按键代码(返回值number)和keydown/keyup(事件会在键盘按下/松开时触发)配合使用
复制代码
1
2
3
4
5
6
7
8
9
$(document).on('keydown keyup',{'name':'muzidigbig'},function (event) { console.log('jq事件对象:'); console.log(event); //上 38 右 39 下 40 左 37 console.log(event.keyCode); })
7.event.timeStamp   这个属性返回事件触发时距离1970年1月1日的毫秒数。
复制代码
1
2
3
4
5
6
7
8
9
$(document).on('keydown keyup',function () { console.log('jq事件对象:'); console.log(event); var stamp = event.timeStamp; console.log(stamp); })


未完待续……


若有不足请多多指教!希望给您带来帮助!

最后

以上就是单纯裙子最近收集整理的关于jq06--jq事件对象、event、data、pageX/pageY、target、keyCode、which的全部内容,更多相关jq06--jq事件对象、event、data、pageX/pageY、target、keyCode、which内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部