javascript - 如何检测文本区域何时失去焦点并在单击特定元素时防止其失去焦点?

标签 javascript html jquery jquery-events

我有一个文本区域#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 时文本区域不应失去焦点。我该怎么办?

最佳答案

这是您需要的吗?这只是一个解决方法。文本区域模糊和 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);
        }
    }
);

关于javascript - 如何检测文本区域何时失去焦点并在单击特定元素时防止其失去焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863083/

相关文章:

php - 带有 html 页面的动态数据库驱动网站

jquery - html5 jquery底部的空白

javascript - 如何在 JavaScript 中选择和迭代共享一个 CSS 类的单个 <div> 的子元素?

Javascript CS-PRNG - 64 位随机

JavaScript 从数组中查找值,替换为下一个索引

javascript - 获取 float 在下一行的第一个元素

javascript - 与 sibling 一起做两个按钮的互斥复选框()

javascript - 如何使用 javascript 验证 html 5 输入类型日期?

javascript - Backbone.js View 是否需要 jQuery 或 Zepto? (或 : why am I getting “Uncaught TypeError: undefined is not a function” ? )

javascript - css-如何向图像添加动态 slider ?