0

我正在编写一个在线编辑器。为了正确获取字符输入,我在 textarea 元素上使用 jQuery.onKeyPress 事件(从正文获取输入不起作用,因为退格等字符会激活某些浏览器快捷方式 - 此外,某些字符只能以这种方式正确提供)。该文本区域通过将其放置在窗口外而被隐藏(否则将不起作用)。

问题是:

  1. 我正在做的事情有更好的设计吗?
  2. 我如何保证这个元素永远不会散焦,除了设置一个定时器来不断地聚焦它?
4

2 回答 2

4

要确保元素始终处于焦点位置,请使用以下命令:

var $textarea = $('textarea');

$textarea.on('blur', function () {
    setTimeout(function () {
        $textarea.focus();
    }, 0);
});
于 2013-01-29T01:24:04.747 回答
0

上面答案的一个小变体:

html:

<input type="text" id="element">

jQuery


$('#element').on('blur', function () {
    _this = this;
    setTimeout(function () {
        _this.focus();
    }, 0);
});

香草(纯 Js)


var theElement = document.getElementById("element");

theElement.addEventListener("focusout", function(){
    _this = this;
    setTimeout(function () {
        _this.focus();
    }, 0);
});
于 2017-08-24T16:53:58.623 回答