jQuery通过event获取点击事件的事件对象
2017-11-13 19:14
471 查看
要想搞明白js的事件机制,必须搞清楚几个概念:事件对象,事件源,还有事件流
怎么理解那??
如上代码,当onmousemove事件发生时,就会产生一个事件对象,就是程序中的event对象,我们只能在这个匿名函数中访问到这个event对象,在函数外面是访问不到的,同样我们也无法手动创建这个event对象;
如何获取事件对象那??
var e = event || window.event; 这句话就是定义了一个变量来获取事件对象,因为不同的浏览器获取事件对象的方法有点不太一样,IE下是window.event,标准下是event,为 了兼容所以写了event || window.event.
事件对象也分为:
鼠标事件对象,键盘事件对象等,顾名思义鼠标事件发生时产生鼠标事件对象,键盘事件发生时产生键盘事件对象;既然是对象,就必然有一些属性方法啥的。
鼠标事件对象上的常用属性:
clientX,clientY,screenX,screenY,offsetX,offsetY
键盘事件对象上的属性有:
keyCode: 用来获取键盘码的;比如空格的键盘是32,回车13等
cltkey: 判断alt键是否被按下,按下是true,反之false
Ctrlkey: 判断Ctrlkey键是否被按下,按下是true,反之false
Shiftkey : 判断Shiftkey 键是否被按下,按下是true,反之false
说到这里相信大家应该理解“事件对象”了吧!接着说一说事件源。
事件源:
在事件中,当前操作的那个元素就是事件源。比如网页元素中a标签和input都有onclick事件,当点击a发生onclick事件时,事件源就是a标签,当点击input发送onclic事件是,事件源就是input。
如何获取事件源那??
IE下:window.event.srcElement
标准下:event.target
由此可见,我们是通过事件对象获取到的事件源。
例如:点击一个div外部的时候使div消失
查看事件的target:
事件对象:
当事件发生时会产生事件对象,事件对象的作用是用来记录“事件发生是一些相关的信息。注意事件对象只有在事件发生时才会产生,我们无法手动创建,并且事件对象只能在处理函数内部访问,处理函数允许结束后该对象自动销毁。怎么理解那??
<script> document.onmousemove = function (ev) { var e = ev || window.event; var div = document.getElementById('div'); div.innerHTML = "clientX:"+ e.clientX; } </script>
如上代码,当onmousemove事件发生时,就会产生一个事件对象,就是程序中的event对象,我们只能在这个匿名函数中访问到这个event对象,在函数外面是访问不到的,同样我们也无法手动创建这个event对象;
如何获取事件对象那??
var e = event || window.event; 这句话就是定义了一个变量来获取事件对象,因为不同的浏览器获取事件对象的方法有点不太一样,IE下是window.event,标准下是event,为 了兼容所以写了event || window.event.
事件对象也分为:
鼠标事件对象,键盘事件对象等,顾名思义鼠标事件发生时产生鼠标事件对象,键盘事件发生时产生键盘事件对象;既然是对象,就必然有一些属性方法啥的。
鼠标事件对象上的常用属性:
clientX,clientY,screenX,screenY,offsetX,offsetY
键盘事件对象上的属性有:
keyCode: 用来获取键盘码的;比如空格的键盘是32,回车13等
cltkey: 判断alt键是否被按下,按下是true,反之false
Ctrlkey: 判断Ctrlkey键是否被按下,按下是true,反之false
Shiftkey : 判断Shiftkey 键是否被按下,按下是true,反之false
说到这里相信大家应该理解“事件对象”了吧!接着说一说事件源。
事件源:
在事件中,当前操作的那个元素就是事件源。比如网页元素中a标签和input都有onclick事件,当点击a发生onclick事件时,事件源就是a标签,当点击input发送onclic事件是,事件源就是input。
如何获取事件源那??
IE下:window.event.srcElement
标准下:event.target
由此可见,我们是通过事件对象获取到的事件源。
例如:点击一个div外部的时候使div消失
$(document).click(function(event) { if ($(event.target).attr("class") != "unitName") { if ($("#showDiv").css("display") == "block") { $("#showDiv").css("display", "none");// 点击外部的时候隐藏名字提示框 } } })
查看事件的target:
相关文章推荐
- JQuery选择器通过click事件获取当前点击对象的id,name,value属性
- jquery获取任意点击到的对象,绑定点击函数event.target 不能用this
- jquery 通过点击事件获取id
- 如何直接通过jquery为获取的对象添加事件?
- jquery获取点击事件对象
- 第一百七十节,jQuery,事件对象,event 对象,默认行为,冒泡
- jquery获取当前点击对象
- jQuery获取当前点击的对象元素
- jquery 的on方法获取发生事件的元素对象
- jquery点击事件获取该元素在整个一类元素中的索引值
- 获取<a>标签点击事件的当前对象,改变文本值
- jquery获取input单选按钮点击事件及单选按钮值的方法
- jquery 获取页面点击事件 $("body").click()
- jquery笔记:事件对象 event.currentTarget,event.data,event.delegateTarget,event.relatedTarget.......
- jQuery事件对象event的属性和方法
- jquery-icheck radio的点击事件、change事件、获取当前选中的值
- jquery点击事件获取该元素在整个一类元素中的索引值
- JS-jquery 获取当前点击的对象
- jquery异步调用自数据库获取值通过knockoutjs赋值给职位二级菜单导致的jquery的hover事件不执行的例子
- jquery得到点击事件的this对象