focusout()

将一个事件函数绑定到"focusout"事件。

.focusout(handler)
  • handler 类型: Function(Event eventObject)每次事件触发时会执行的函数。
.focusout([eventData ], handler)
  • eventData 类型: Anything 。一个对象,它包含的数据键值对映射将被传递给事件处理程序。
  • handler 类型: Function(Event eventObject)每次事件触发时会执行的函数。
.focusout()
  • 这个方法不接受任何参数。

当传递参数时,这个方法是 .on('focusout', handler) 的快捷方式,当不传递参数的时候,是 .trigger('focusout') 的快捷方式。

focusout 事件会在元素(或者其内部的任何元素)失去焦点时触发。这跟 blur 事件的显著区别在于,它可以在父元素上检测子元素失去焦点的情况(换而言之,它支持事件冒泡)。

这个事件通常会跟 focusin 事件一起使用。

Additional Notes(其他注意事项):

  • .focusout() 方法只是作为 .on("focusout", handler) 的一个速记写法,移除该事件可以使用 .off("focusout")

例子

监视段落内部失去焦点的情况。请注意 focusout 计数和 blur 计数的差异。

<!DOCTYPE html>
<html>
<head>
  <style>
.inputs { float: left; margin-right: 1em; }
.inputs p { margin-top: 0; }
</style>
  <script src="./static/js/jquery-3.5.0.js"></script>
</head>
<body>
 
<div class="inputs">
  <p>
    <input type="text" /><br />
    <input type="text" />
  </p>
  <p>
    <input type="password" />
  </p>
</div>
<div id="fo">focusout fire</div>
<div id="b">blur fire</div>
 
<script>
var fo = 0, b = 0;
$("p").focusout(function() {
  fo++;
  $("#fo")
    .text("focusout fired: " + fo + "x");
}).blur(function() {
  b++;
  $("#b")
    .text("blur fired: " + b + "x");
 
});
</script>
 
</body>
</html>


focusout fire
blur fire

上篇: focusin()