Как получить текущую позицию текстового курсора при наведении мыши?

Я создаю скрытую контактную форму, которая будет появляться, когда мышь находится над элементом. Это довольно просто, и я добился этого, выполнив:

$(document).ready(function(){   
  $(function (){
    $("#contact_1").hover(
      function(){ $(this).stop(true,false).animate({right:  0}, 500); },
      function(){ $(this).stop(true,false).animate({right: -218}, 500); });
  });
});

Теперь проблема заключается в том, что когда пользователь просматривает элементы ввода или текстовое поле и начинает писать свои данные, он может переместить мышь из контейнера (весьма вероятно, что так и будет).

Как я могу предотвратить скрытие формы в этом случае?

Я бы добавил некоторые условные функции (if/else) в функции наведения, но как я могу получить текущую позицию текстового курсора?

Контактная форма (#contact_1) содержит 4 элемента внутри ID: #cf_name, #cf_email, #cf_phone, #cf_text

Обратите внимание: я хочу, чтобы пользователям не приходилось нажимать кнопку "Показать/скрыть"

* может быть, это простой вопрос, но я нигде не могу найти четкого ответа.

---------------------------------------------

РЕШЕНИЕ:

Благодаря помощи Диодеуса ниже мне удалось решить это следующим образом:

Каждый вход имеет onfocus/onblur действий:

<input type="text" id="cf_name" class="text" name="name" onfocus="allowcfhide=false;" onblur="allowcfhide=true;" />

Скрипт наведения был изменен:

var allowcfhide=true;
$(document).ready(function(){   
  $(function (){
    $("#contact_1").hover(
      function(){ if (allowcfhide) $(this).stop(true,false).animate({right:  0}, 500); },
      function(){ if (allowcfhide) $(this).stop(true,false).animate({right: -218}, 500); });
  });
});

person Czakalli    schedule 20.09.2012    source источник


Ответы (1)


Имейте флаг в начале вашей анимации, который заставит ее вернуться. Когда любой ввод получает фокус, установите флаг.

person Diodeus - James MacFarlane    schedule 20.09.2012
comment
Вы имеете в виду, что мне придется создать глобальную переменную javascript, которая будет меняться при фокусе элемента ввода? - спасибо, ОТЛИЧНАЯ ИДЕЯ, только что протестировано и работает... - person Czakalli; 20.09.2012