如何确定切换文本区域焦点

How do I determine switching textarea focused?

本文关键字:区域 焦点 文本 何确定      更新时间:2023-09-26

>我有两个文本区域:

<textarea id="one"></textarea>
<textarea id="two"></textarea>

现在我想text area was focused一次显示此消息,直到将焦点集中在另一个文本区域

像这样:

var el;
$("body").on('focus', 'textarea', function(e) {
  if (el != $(this)) {
    alert('new textarea is focused now');
  }
  
  el = $(this);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<textarea id="one"></textarea>
<textarea id="two"></textarea>

如果我在第一次聚焦后从未模糊任何这些文本区域,则此 ^ 代码有效。但是如果我模糊其中一个,那么这个变量el将是空的..我怎样才能$(this)永远留在el

您所需要的只是使用 this 而不是 $(this) ,如下所示:

var el;
$("body").on('focus', 'textarea', function(e) {
  if (el != this) {
    alert('new textarea is focused now');
  }
  
  el = this;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<textarea id="one"></textarea>
<textarea id="two"></textarea>

您有一个警报,该警报将模糊页面的其余部分。关闭警报对话框后,文本区域将重新成为焦点。这创造了一个疯狂且永无止境的循环(事件 - 警报 - 事件)。使用return在它触发后退出。