Эмуляция JQuery «бинарная блокировка» - PullRequest
0 голосов
/ 20 июля 2009

У меня есть страница HTML, полная данных. Всякий раз, когда пользователь наводит указатель мыши на запись, появляется всплывающее окно (аналогично всплывающей подсказке). Я хочу, чтобы эта подсказка оставалась в поле зрения до тех пор, пока пользователь не щелкнет за ее пределами И не заблокирует отображение других подсказок. Мой вопрос заключается в следующем: как «заблокировать» другие события наведения, либо с помощью флагов, либо каким-либо другим способом, чтобы достичь этого?

EDIT: Вопрос с использованием флагов: скажите, что в моем документе все готово:

var flag = 1; 
flag = Inithoverhandler(flag); 
flag = Inithoverhandler2(flag); 

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

Спасибо
Michael

1 Ответ

0 голосов
/ 20 июля 2009

Вы можете использовать флаг, или вы можете проверить, сколько окон в настоящее время видимы, используя селектор: visible. Если это 1, не показывать следующее окно.

$(".tooltip:visible").length; // how many tooltips are currently showing?
$(".tooltip:visible").hide(); // hide any visible tooltip.

Что касается отображения только всплывающих подсказок, когда в данный момент нет других видимых:

$(".showTooltip").click(function(){
  if ($(".tooltip:visible").length > 0) return false;
  $(".tooltip", this).show();
});

Работа с:

<div class="showTooltip">
  <div class=".tooltip"><p>This is the tooltip.</p></div>
</div>
...