javascript - jQuery odak kaybı olayı


Bir giriş alanı odaklandığında bir konteyneri göstermek ve - asıl sorun bu - odak kaybolduğunda konteyneri gizlemek istiyorum. jQuery'nin focus olayının tersine bir olay var mı?

Bazı örnek kod:

<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>

Ve yapmak istediğim şey şöyle bir şey:

$('#filter').focus_lost(function() {
  $('#options').hide();
});

Cevap #1

Element odağını kaybettiğinde fonksiyonunuzu çağırmak için blur olayını kullanın :

$('#filter').blur(function() {
  $('#options').hide();
});

Cevap #2

Böyle:

$(selector).focusout(function () {
    //Your Code
});

Cevap #3

"blur" kullanın: http://docs.jquery.com/Events/blur#fn

Cevap #4

blur olayı: öğe odağı kaybettiğinde.

focusout olayı: eleman veya içindeki herhangi bir eleman odak kaybettiğinde.

Filtre elemanının içinde hiçbir şey olmadığından, bu durumda hem blur hem de focusout çalışacaktır.

$(function() {
  $('#filter').blur(function() {
    $('#options').hide();
  });
})

bulanıklık ile jsfiddle: http://jsfiddle.net/yznhb8pc/

$(function() {
  $('#filter').focusout(function() {
    $('#options').hide();
  });
})

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

İlgili makaleler