本章节底部包含更多实例。
onfocusout 事件在元素即将失去焦点时触发。
提示: onfocusout 事件类似于 onblur 事件。 主要的区别是 onblur 事件不支持冒泡。因此,如果你需要查看元素或其子元素是否获取焦点,需要使用 onfocusout 事件。
提示: 虽然 Firefox 不支持 onfocusout 事件, 但你可以通过使用 onfocus (使用addEventListener()方法的可选参数 useCapture)的捕获监听事件来查看元素或其子元素是否失去焦点。
提示: onfocusout 事件的相反事件为 onfocusin 事件。
事件 | |||||
---|---|---|---|---|---|
onfocusout | Yes | Yes | 不支持 | Yes | Yes |
注意: 在 Chrome, Safari 和 Opera 15+ 浏览器中使用 HTML DOM 语法的 onfocusin 事件可能无法正常工作。 但是,他作为一个 HTML 元素,通过使用 addEventListener() 方法可以正常工作。
HTML 中:
<element onfocusout="myScript">
JavaScript (Chrome, Safari 和 Opera 15+ 可能无法正常工作) 中:
object.onfocusout=function(){myScript};
JavaScript 中, 使用 addEventListener() 方法:
object.addEventListener("focusout", myScript);
注意: Internet Explorer 8 及更早 IE 版本不支持 addEventListener() 方法。
是否支持冒泡: | Yes |
---|---|
是否可以取消: | No |
事件类型: | FocusEvent |
支持的 HTML 标签: | 所有 HTML 元素,除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title> |
使用 "onfocusin" 和 "onfocusout" 事件:
运行一下 »<input type="text" onfocusin="focusFunction()" onfocusout="blurFunction()">
事件委托:设置 addEventListener() 的 useCapture 参数为 true (用于获取焦点和失去焦点):
运行一下 »<form id="myForm">
<input type="text" id="myInput">
</form>
<script>
var x = document.getElementById("myForm");
x.addEventListener("focus", myFocusFunction, true);
x.addEventListener("blur", myBlurFunction, true);
function myFocusFunction() {
document.getElementById("myInput").style.backgroundColor = "yellow";
}
function myBlurFunction() {
document.getElementById("myInput").style.backgroundColor = "";
}
</script>
事件委托:使用 focusout 事件 ( Firefox 浏览器不支持 ):
运行一下 »<form id="myForm">
<input type="text" id="myInput">
</form>
<script>
var x = document.getElementById("myForm");
x.addEventListener("focusin", myFocusFunction);
x.addEventListener("focusout", myBlurFunction);
function myFocusFunction() {
document.getElementById("myInput").style.backgroundColor = "yellow";
}
function myBlurFunction() {
document.getElementById("myInput").style.backgroundColor = "";
}
</script>