Как исключить идентификатор из фокуса
В Jquery focusout вызывается, когда вы щелкаете в любом месте вне области фокусировки, когда установлен "focusout".
Как исключить некоторые идентификаторы из активации функции "Фокусировка".?
например здесь.
У вас есть поле ввода текста (id="A"), которое скрывает некоторый div по фокусу и показывает тот самый div, когда он не в фокусе, но теперь он, очевидно, будет показывать div, когда вы щелкаете в любом месте этого ("#A ") поле ввода.
Вопрос в том, как установить какой-либо идентификатор (может быть, поле выбора (Id="B" рядом с ним), чтобы не запускать функцию "focusout". Надеюсь, это имеет смысл.
2 ответа
Попробуйте использовать relatedTarget
свойство события:
$('#id').focusout (function (e) {
if (e.relatedTarget && e.relatedTarget.id === 'dontFocusOut') {
return;
}
//do your thing
});
Вы можете unbind
focusout
когда вы нажимаете на div. Это может вернуть некоторые ожидаемые результаты, и в какой-то момент в вашем коде вы, вероятно, захотите перепривязать его. Смотрите здесь для примера: http://jsfiddle.net/hdCFA/
$("input").on("focus", function() {
$(".hidden").show();
});
$("input").on("focusout",function() {
$(".hidden").hide();
});
$(".clickable").on("mousedown", function() {
$("input").unbind("focusout");
});
HTML:
<input />
<div class="hidden">Hidden div</div>
<div class="clickable">Click me</div>
CSS:
.clickable { background:blue; }
.hidden {
display:none;
}