Как я могу определить, когда текстовая область теряет фокус, и не дать ей потерять фокус при нажатии определенного элемента? - PullRequest
0 голосов
/ 23 октября 2011

У меня есть текстовая область #ta со списком #ac-list внизу, которая используется для автозаполнения:

<div id='container'>
    <textarea id="ta" name="god" rows="20"></textarea>
    <ul id='ac-list' style='visibility:hidden'></ul>
</div>

Когда текстовая область теряет фокус, я хотел бы скрыть #ac-list. Поэтому я вызываю jquery blur в текстовой области:

$('#textarea').blur(function () {
    $('#ac-list').css('visibility', 'hidden');
})

Это работает, но я бы хотел добавить ограничение, чтобы текстовая область не теряла фокус, когда пользователь нажимает #ac-list. Как я могу пойти по этому поводу?

1 Ответ

0 голосов
/ 23 октября 2011

Это то, что вам нужно?Это просто обходной путь.Время, необходимое для размытия текстовой области и фокусировки на элементе li, зависит от компьютера.

HTML:

<div id='container'>
    <textarea id="ta" name="god" rows="20"></textarea>
    <ul id='ac-list'>
        <li>dsfd</li>
    </ul>
</div>

JavaScript:

var textAreaBlur = null;

$('textarea').blur(function () {
    textAreaBlur = new Date();
});

var clickTimes = 0;
$("#ac-list > li").click(
    function() {
        if((new Date() - textAreaBlur) < 200) {
            $("#ta").focus();
            $(this).text("dsfd" + ++clickTimes);
        }
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...