【转】jquery的事件对象event简介

 

什么是事件对象?

如何拿到当前事件的事件对象?

事件对象有什么属性?

 event.type 属性获取触发事件名

event.data 获取额外数据,可以是数字、字符串、数组、对象

event.target获取当前事件绑定的dom元素

 注意

事件对象常用的方法

event.stopPropagation()阻止事件冒泡

什么是事件冒泡?

event.preventDefault()阻止默认行为


事件处理(事件对象、目标元素的获取,事件对象的属性、方法等)在不同浏览器之间存在差异,jQuery在遵循W3C规范的情况下做了封装统一

什么是事件对象?

事件对象是在事件触发的时候生成的,包含了事件触发的一些信息,是无法人为的创建的,并且只能在函数的内部访问到,事件执行完毕,事件对象销毁。

如何拿到当前事件的事件对象?

直接在事件的函数内部就可以访问到,函数内部的这个e,就是事件对象event.

$("#btn").click(function(e){
			console.log(e.type);
			
		});

事件对象有什么属性?

对其中几个属性说明:

 event.type 属性获取触发事件名

$('input').click(function (e) {

    alert(e.type);

});

event.data 获取额外数据,可以是数字、字符串、数组、对象

$('input').bind('click', 123, function () {      //传递 data 数据

alert(e.data);                                   //获取数字数据123

});

注意:如果字符串就传递:'123'、如果是数组就传递:[123,'abc'],如果是对象就传递:{user : 'Lee', age : 100}。数组的调用方式是:e.data[1],对象的调用方式是:e.data.user。

event.target获取当前事件绑定的dom元素

$("#btn").click(function(ev){
			alert(ev.target);
		});

 注意

1. event.target和this的区别,因为js中存在冒泡,所以this是会变化的,当时event.target永远是事件绑定的元素.

2.  event.target 和this都是dom对象,可以转为jquery对象$(event.target)和$(this)

3. event.currentTarget得到是的监听元素的dom相当于this

事件对象常用的方法

event.stopPropagation()阻止事件冒泡

什么是事件冒泡?

如果页面中层叠了多个元素,并且这多个元素绑定的是同一个事件,就会出现事件冒泡的问题

<div>
    <input type="button" value = "点击">
</div>
//三个不同元素触发事件

$('input').click(function () {

    alert('按钮被触发了!');

});

$('div').click(function () {

    alert('div 层被触发了!');

});

$(document).click(function () {

    alert('文档页面被触发了!');

});

冒泡的现象:

点击文档的时候,只会触发文档的click事件,点击div的时候,触发文档和div的click事件,点击button的时候,触发文档,div,button的click事件,是一层一层向上传递的。

希望点击button,不会触发到上层同样的click事件,就可以使用event.stopPropagation()方法,取消上层的冒泡事件 

$('input').click(function (e) {

  alert('按钮被触发了!');

  e.stopPropagation();

});

event.preventDefault()阻止默认行为

比如,想要阻止a标签点击,触发href跳转。

$('a').click(function (e) {  

  e.preventDefault();

});

阻止form表单提交

$('form').submit(function (e) {  

  e.preventDefault();

});

转载:https://www.cnblogs.com/ttcc/p/3801158.html

猜你喜欢

转载自blog.csdn.net/Ditto_zhou/article/details/84643960