blur()
为"blur"事件绑定一个处理函数,或者触发元素上的"blur"事件(注:此事件不支持冒泡)。
.blur(handler(eventObject))
- handler(eventObject)类型:Function()。每当事件触发时执行的函数。
.blur([eventData ], handler(eventObject))
- eventData类型: Anything。一个对象,它包含的数据键值对映射将被传递给事件处理程序。
- handler(eventObject)类型:Function()。每当事件触发时执行的函数。
.blur()
- 这个方法不接受任何参数
这个函数的前两个用法是.bind('blur', handler)
的快捷方式,第3个不带参数的用法是.trigger('blur')
的快捷方式。
一个元素失去焦点将触发blur
事件。起初,这个事件仅适用于表单元素,如元素<input>
。在最新的浏览器中,这个事件适用范围已经扩大到包括所有元素类型。一个元素可以通过键盘命令失去焦点,比如tab键,或用鼠标点击网页上的其他地方。
举例来说,请看下面的HTML:
<form> <input id="target" type="text" value="Field 1" /> <input type="text" value="Field 2" /> </form> <div id="other"> Trigger the handler </div> The event handler can be bound to the first input field: $('#target').blur(function() { alert('Handler for .blur() called.'); });
现在,如果第一个表单字段(field)获取焦点,点击别处或按Tab键她将失去焦点,显示警告:
Handler for .blur()called.
应用不带参数的.blur()
,我们可以手动触发这个事件:
$('#other').click(function () { $('#target').blur(); });
这些代码执行后,点击Trigger the handler也提醒消息。
blur
事件不会在Internet Explorer中冒泡。因此,用blur
事件委派,跨浏览器无法正常工作。但是,在1.4.2版本,jQuery的解决此限制,模拟blur
为focusout
事件,可以使用.live()
和.delegate()
委派的方法。
Additional Notes(其他注意事项):
.blur()
方法只是作为.on("blur", handler)
的一个速记写法,移除该事件可以使用.off("blur")
。
例子
触发所有段落上的blur事件:
$("p").blur();