我想在文本区域上使用聚焦,将导致聚焦的单击按钮的值存储起来,然后在进行一些处理之后单击它。我的解决方案在iPhone和iPad以外的所有设备上都能正常运行。谁能解释为什么event.relatedTarget在触摸屏上为null?还是浏览器?还有什么用?

我已经尝试过e.currentTarget和document.activeElement(返回整个HTML主体),以及在使用e.currentTarget周围尝试了setTimeout。在iPad和iPhone上,我似乎无法获得焦点集中的clicked按钮的ID。

这是一个示例:

<div id="resultPage">
  <textarea id="txtAnswer0" class="txtAnswer"></textarea>

  <button id="goNow">
    GO
  </button>
</div>

$(document).ready(function() {


  $("#resultPage").on("focusout", ".txtAnswer:not(input[type=radio], input[type=checkbox])", function(e) {

     var targetCtrl = e.relatedTarget;

     alert(targetCtrl);
  });


});

这是我的小提琴:

https://jsfiddle.net/awebster28/6q6ok4re/25/

最佳答案

在我的研究中,我了解到relatedTarget仅与鼠标事件有关。如果在非鼠标事件中relatedTarget不为null,则说明浏览器未遵循标准。

您可能必须在单击时将按钮和/或按钮值临时存储在变量中,以便以后可以在第二次单击时使用。

09-27 04:34