javascript - 输入框由于目标范围广泛而失去焦点

标签 javascript jquery

我有一个输入框,我正在使用 jEditable (jQuery) 进行内联编辑,但由于不幸的情况,当我在输入框外部单击时它并没有失去焦点,因此我实现了下面的代码来解决这个问题。

$('section').mousedown(function() {
    document.activeElement.blur();
});

这对于我遇到的问题效果很好(在输入框外部单击时不会失去焦点),但是当单击我的输入框时,它会很好地聚焦,然后立即失去焦点,因此它不会允许我选择输入框中的任何文本。显然,这取决于我对 'section' 的广泛定位。有没有办法只使用 document.activeElement.blur(); 而不针对输入元素?

谢谢。

关于为什么我不能修复最初的问题,似乎它是在可排序的 jQuery UI 中实现的:Click on jQuery Sortable list does not blur input

最佳答案

我在使用 sortable 之前就遇到过这个问题,解决它的最佳方法如下:

$(document).click(function(evt) {
    var class_to_choose = $(evt.target).context.tagName.toLowerCase();

    if (class_to_choose!="input") {
        document.activeElement.blur();
    }
});

基本上只需确保您点击的不是输入框即可。

关于javascript - 输入框由于目标范围广泛而失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28465867/

相关文章:

javascript - 如何隐藏 Microsoft Office Online Viewer 中的状态栏

javascript - Javascript 中参数和参数之间的联系是什么?

javascript - 为什么我的 Javascript 变量没有初始化?

jquery - JSON问题中的Rails HTML编码

jquery - Bootstrap popover 右上角总是在最上面

javascript - JQuery getJSON() 解析产生 "undefined"值

javascript - 快速并发的 ajax 调用

javascript - 在可拖动的 div 中闪烁

javascript - 复选框更改仅在第一次时不会触发 jquery 事件

javascript - 单击按钮时执行 python 脚本