• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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的解决此限制,模拟blurfocusout事件,可以使用.live().delegate()委派的方法。

    Additional Notes(其他注意事项):

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

    例子

    触发所有段落上的blur事件:

    $("p").blur();
    

    下篇:focus()