jQuery失去焦点事件

xij*_*ijo 246 javascript jquery focus javascript-events

我试图在输入字段获得焦点时显示容器 - 这是实际问题 - 如果焦点丢失则隐藏容器.是否存在jQuery关注的相反事件?

一些示例代码:

<input type="text" value="" name="filter" id="filter"/>

<div id="options">some cool options</div>

<script type="text/javascript">
  $('#options').hide();

  $('#filter').focus(function() {
    $('#options').appear();
  });
</script>
Run Code Online (Sandbox Code Playgroud)

而我想做的是这样的事情:

$('#filter').focus_lost(function() {
  $('#options').hide();
});
Run Code Online (Sandbox Code Playgroud)

Can*_*var 411

当元素失去焦点时,使用blur事件调用函数:

$('#filter').blur(function() {
  $('#options').hide();
});
Run Code Online (Sandbox Code Playgroud)

  • 如果浏览器像chrome auto填充文本框,我不认为它会触发模糊() (3认同)

Sof*_*ARM 40

像这样:

$(selector).focusout(function () {
    //Your Code
});
Run Code Online (Sandbox Code Playgroud)

  • 在第一次阅读时,SoftwareARM的解释对我来说没什么意义,所以我在jQuery的文档页面(http://api.jquery.com/focusout/)上找到了一个替代解释,我认为这对其他人有帮助:焦点事件当它或它内部的任何元素失去焦点时被发送到元素.这与模糊事件的不同之处在于它支持从父元素检测焦点丢失(换句话说,它支持事件冒泡). (25认同)
  • 这与"模糊"的区别是什么? (10认同)
  • 模糊方法用于移除其所属对象的焦点(即使非当前).给文本字段模糊将光标移动到下一个字段.给一个窗口模糊将把它移到所有其他窗口后面.这不是保留字,因此您可以声明自己的变量或称为模糊的函数,但如果这样做,则无法使用此方法来控制哪个对象是最新的. (5认同)
  • 焦点方法用于给焦点(即使当前)它所属的对象.给予文本字段焦点将光标移动到该字段.给予一个窗口焦点将把它移到所有其他窗口前面.未指定要应用的特定对象以使用具有焦点的对象的操作.这不是保留字,因此您可以声明自己的变量或称为焦点的函数,但如果这样做,您将无法使用此方法来控制哪个对象是最新的. (2认同)

Raz*_*aul 9

模糊事件:当元素失去焦点时.

focusout事件:当元素或其中的任何元素失去焦点时.

由于滤镜元素内部没有任何内容,因此在这种情况下,模糊和聚焦都会起作用.

$(function() {
  $('#filter').blur(function() {
    $('#options').hide();
  });
})
Run Code Online (Sandbox Code Playgroud)

jsfiddle with blur:http: //jsfiddle.net/yznhb8pc/

$(function() {
  $('#filter').focusout(function() {
    $('#options').hide();
  });
})
Run Code Online (Sandbox Code Playgroud)

jsfiddle with focusout:http://jsfiddle.net/yznhb8pc/1/