3-1 jQuery表单事件之blur与focus事件
本节编程练习不计算学习进度,请电脑登录imooc.com操作

jQuery表单事件之blur与focus事件

在之前2.8与2.9节我们学过了表单处理事件focusin事件与focusout事件,同样用于处理表单焦点的事件还有blur与focus事件

它们之间的本质区别:

是否支持冒泡处理

举个简单的例子

<div>
  <input type="text" />
</div>

其中input元素可以触发focus()事件

div是input的父元素,当它包含的元素input触发了focus事件时,它就产生了focusin()事件。

focus()在元素本身产生,focusin()在元素包含的元素中产生

blur与focusout也亦是如此

具体参考下案例,给出来的区别

任务

  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: 50px;
  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. <h4>.focusin与blur</h4>
  31. <div class="left">
  32. <div class="aaron">
  33. 点击触发焦点(无反应):
  34. <input type="text" />
  35. </div>
  36. <div class="aaron1">
  37. 点击触发焦点并冒泡:
  38. <input type="text" />
  39. </div>
  40. </div>
  41. <script type="text/javascript">
  42. $(".aaron").focus(function() {
  43. $(this).css('border', '2px solid red')
  44. })
  45. $(".aaron1").focusin(function() {
  46. $(this).find('input').val('冒泡捕获了focusin事件')
  47. })
  48. </script>
  49.  
  50.  
  51. <h4>.focusout与blur</h4>
  52. <div class="right">
  53. <div class="aaron3">
  54. 点击触发失去焦点(无反应):
  55. <input type="text" />
  56. </div>
  57. <div class="aaron4">
  58. 点击触发失去焦点并冒泡:
  59. <input type="text" />
  60. </div>
  61. </div>
  62. <script type="text/javascript">
  63. $(".aaron3").blur(function() {
  64. $(this).css('border', '2px solid red')
  65. })
  66. $(".aaron4").focusout(function() {
  67. $(this).find('input').val('冒泡捕获了focusout事件')
  68. })
  69.  
  70. </script>
  71.  
  72. </body>
  73.  
  74. </html>
  75.  
下一节