jQuery事件对象的属性和方法详解
jquery事件对象的属性和方法,供大家参考,具体内容如下
事件对象的属于与方法有很多,但是我们经常用的只有那么几个,这里我主要说下作用与区别
event.type:获取事件的类型
触发元素的事件类型
$("a").click(function(event) { alert(event.type); // "click"事件 });
event.pagex 和 event.pagey:获取鼠标当前相对于页面的坐标
通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(左边)与 (顶边)的距离,简单来说是从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化
event.preventdefault() 方法:阻止默认行为
这个用的特别多,在执行这个方法后,如果点击一个链接(a标签),浏览器不会跳转到新的 url 去了。我们可以用 event.isdefaultprevented() 来确定这个方法是否(在那个事件对象上)被调用过了
event.stoppropagation() 方法:阻止事件冒泡
事件是可以冒泡的,为防止事件冒泡到dom树上,也就是不触发的任何前辈元素上的事件处理函数
event.which:获取在鼠标单击时,单击的是鼠标的哪个键
event.which 将 event.keycode 和 event.charcode 标准化了。event.which也将正常化的按钮按下(mousedown 和 mouseupevents),左键报告1,中间键报告2,右键报告3
event.currenttarget : 在事件冒泡过程中的当前dom元素
冒泡前的当前触发事件的dom对象, 等同于this.
this和event.target的区别:
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标dom元素;
.this和event.target都是dom对象
如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和$(this)的使用、event.target和$(event.target)的使用;
参考代码:
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title></title> <style> .left div, .right div { width: 500px; height: 100px; padding: 5px; margin: 5px; float: left; border: 1px solid #ccc; } .left div { background: #bbffaa; } .right div { background: yellow; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> </head> <body> <h3>事件对象的属性与方法</h3> <div class="left"> <div id="content"> 外层div元素 <br /> <span style="background: silver;">内层span元素</span> <br /> 外层div元素 </div> <br /> <div id="msg"></div> </div> <script type="text/javascript"> //为 <span> 元素绑定 click 事件 $("span").click(function() { $("#msg").html($("#msg").html() + "<p>内层span元素被单击</p>"); }); //为 id 为 content 的 <div> 元素绑定 click 事件 $("#content").click(function(event) { $("#msg").html($("#msg").html() + "<p>外层div元素被单击</p>"); event.stoppropagation(); //阻止事件冒泡 }); //为 <body> 元素绑定 click 事件 $("body").click(function() { $("#msg").html($("#msg").html() + "<p>body元素被单击</p>"); }); </script> </body> </html>
点击span冒泡到content的点击事件,然后进入到content的click function里面执行阻止冒泡语句,也就不会冒泡到body,所以点击span不会出现body元素被点击。
$('#msg').html($('#msg').html()+ "<p>内层span元素被单击</p>"); //在msg原有内容上追加
$('#msg').html("<p>内层span元素被单击</p>"); //替换原来的内容
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Java之反射第十八天( --反射----类的加载--获取对象属性( 成员变量和方法)-- 构造方法 )
-
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
-
详解PHP的Yii框架中组件行为的属性注入和方法注入
-
python魔法方法-属性转换和类的表示详解
-
jQuery解析返回的xml和json方法详解
-
jQuery动态移除和添加背景图片的方法详解
-
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
-
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
-
python实现对象列表根据某个属性排序的方法详解
-
Java8利用stream的distinct()方法对list集合中的对象去重和抽取属性去重