2015-04-28 5 views
3

После добавления текста в поля ввода и нажатия кнопки не запускается событие click. Но нажатие на кнопку вызывает событие click.jQuery focusout not triggering onclick event

$("#title").focusout(function() { 
 
    alert('foucus out'); 
 
}); 
 

 
$("#ok").click(function() { 
 
    alert('click'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Title 
 
<input id="title" val="hello" /> 
 
<input id="ok" type="button" value="OK" />

+0

После ввода текста в поле ввода нажав кнопку, я получаю 2 коробки оповещений в порядке, я бы ожидать. Вы можете проверить свою консоль ошибок, чтобы убедиться, что она не выбрасывает ошибку в вашем браузере. –

+0

В chrome я описываю описанное поведение: либо фокусное предупреждение, если фокус изначально был в текстовом поле, либо в противном случае нажмите кнопку предупреждения. В FireFox я никогда не получаю предупреждение о фокусе, я получаю только уведомления о кликах. – Barmar

+0

проверить это, может быть, это поможет http://stackoverflow.com/questions/4084780/how-should-i-fire-javascript-blur-event-after-click-event-that-causes-the-blur –

ответ

1

Установка таймера, который задерживает действие размывания запускает событие щелчка.

$("#title").focusout(function() { 
 
    setTimeout(function() { 
 
     alert('foucus out'); 
 
    }, 500); 
 
}); 
 

 
$("#ok").click(function() { 
 
    alert('click'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Title 
 
<input id="title" val="hello" /> 
 
<input id="ok" type="button" value="OK" />