6-2 jQuery事件对象的属性和方法
本节编程练习不计算学习进度,请电脑登录imooc.com操作

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)的使用;

 

 

 

任务

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  6. <title></title>
  7. <style>
  8. .left div,
  9. .right div {
  10. width: 500px;
  11. height: 100px;
  12. padding: 5px;
  13. margin: 5px;
  14. float: left;
  15. border: 1px solid #ccc;
  16. }
  17.  
  18. .left div {
  19. background: #bbffaa;
  20. }
  21.  
  22. .right div {
  23. background: yellow;
  24. }
  25. </style>
  26. <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>
  27. </head>
  28.  
  29. <body>
  30. <h3>事件对象的属性与方法</h3>
  31. <div class="left">
  32. <div id="content">
  33. 外层div元素
  34. <br />
  35. <span style="background: silver;">内层span元素</span>
  36. <br /> 外层div元素
  37. </div>
  38. <br />
  39. <div id="msg"></div>
  40. </div>
  41. <script type="text/javascript">
  42. //为 <span> 元素绑定 click 事件
  43. $("span").click(function() {
  44. $("#msg").html($("#msg").html() + "<p>内层span元素被单击</p>");
  45. });
  46. //为 Id 为 content 的 <div> 元素绑定 click 事件
  47. $("#content").click(function(event) {
  48. $("#msg").html($("#msg").html() + "<p>外层div元素被单击</p>");
  49. event.stopPropagation(); //阻止事件冒泡
  50. });
  51. //为 <body> 元素绑定 click 事件
  52. $("body").click(function() {
  53. $("#msg").html($("#msg").html() + "<p>body元素被单击</p>");
  54. });
  55. </script>
  56. </body>
  57.  
  58. </html>
  59.  
下一节