jQuery: фокус, чтобы исключить некоторые элементы
Фокусировка на поле ввода будет срабатывать каждый раз, когда конкретный вход теряет фокус. Но я хочу исключить некоторые конкретные теги из запуска этой функции фокуса
Пример:
<input type="text" id="name_input">
<a id="apply_name">SAVE</a>
Тогда функция фокусировки:
$("#name_input").focusout(function(e) {
//do something here
});
Нажатие на "#apply_name" также запускает функцию фокусировки входа. Как я могу исключить этот конкретный идентификатор элемента из его запуска. Примечание. Я попробовал некоторые приемы, уже опубликованные в Stackru, и ни один из них не сработал...
3 ответа
Решение
Еще один способ сделать это проверить, каков ваш целевой идентификатор
var evt;
document.onmousemove = function (e) {
e = e || window.event;
evt = e;
}
$("#name_input").focusout(function (e) {
if (evt.target.id == "apply_name") {
//apply_name clicked
} else {
//focus out and applyname not clicked
}
});
Решение от Как исключить Id из focusout Добавлен.hasClass, который мне также был нужен:
$('#id').focusout (function (e) {
if (e.relatedTarget && $(e.relatedTarget).hasClass('dontFocusOut')) {
return;
}
//do your thing
});
Вы можете использовать "размытие" - событие.
$("#name_input").on("blur", function(e) {
//your code
});