我有一个输入框,我正在使用 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/