Название немного расплывчато, но я не могу объяснить это в пределе количества символов.
Я создаю небольшую заставку с диалоговыми окнами, которые появляются при наведении курсора на определенные ссылки запуска. Два из них содержат формы (приглашение для входа в систему и регистрационную форму). В настоящее время, если вы наводите курсор мыши на ссылку или на сами диалоговые окна, они остаются с непрозрачностью 100%, а при наведении мыши исчезают. Я пытался предотвратить исчезновение указателя мыши, если фокус ввода находится в фокусе, но сохраняйте его, если фокус ввода отсутствует.
Поскольку нет возможности сделать что-то вроде
var input = $(input);
if (input.is(':focused'){ //do something };
код, который я сейчас использую, на самом деле не работает так, как мне хотелось бы:
// Fade the login box.
$(document).ready(function() {
var hide = false;
var formfocus = false;
// If the link or the dialogue is hovered
$(".log1, .login").hover(function(){
//Clear the hide timeout
if (hide) clearTimeout(hide);
// Fade out the other dialogues
$(".register, .about").fadeOut(40);
// Fade in the login dialogue
$(".login").fadeIn();
}, function() {
// If an input gains focus, set the variable to true
$('input').focus(function(){
if (hide) clearTimeout(hide);
var formfocus = true;
});
// If an input loses focus, set the variable to false
$('input').blur(function(){
var formfocus = false;
});
// Self explainatory
if (formfocus==false){
hide = setTimeout(function() {$(".login").fadeOut();}, 400);
}
});
});
Несмотря на то, что вышеизложенное имеет логический смысл (по крайней мере для меня), оно не работает так, как я ожидал. Если у кого-нибудь есть идеи, как я могу это реализовать, я бы с удовольствием это услышал.
Спасибо,
Брендан.