Как зафиксировать щелчок по ссылке на временном слое, который скрыт при смене фокуса - PullRequest
2 голосов
/ 21 мая 2010

У нас есть слой, который появляется, когда определенный ввод текста имеет фокус, и он должен исчезнуть, когда ввод теряет фокус. Я пытался сделать это так:

<input type="text" onblur="document.getElementById('hideme').style.display='none'" />
<div id="hideme">Textextext <a href="http://disney.com/">disney</a> text</div>

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

Одна идея состояла бы в том, чтобы посмотреть, входит ли мышь в div HideMe, и не закрывать ее, когда там находится курсор мыши, но это кажется слишком сложным. У тебя есть идея получше?

Кстати: вы можете попробовать это очень просто, вставив это в Tryit Editor из w3schools. : -)

1 Ответ

2 голосов
/ 21 мая 2010

Первое решение, которое приходит на ум, - это использование функции setTimeout:

<input type="text" onblur="setTimeout('document.getElementById(\'hideme\').style.display=\'none\'', 100)" />

Без чертовых слешей:

function hidemeWithDelay() {
    setTimeout("document.getElementById('hideme').style.display='none'", 100);
}  

<input type="text" onblur="javascript:hidemeWithDelay();" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...