在触摸屏上的focusout上,event.relatedTarget为null

时间:2016-04-06 13:23:53

标签: javascript jquery focusout

我想在textarea上使用focusout,隐藏导致焦点输出的单击按钮的值,然后在稍后处理后单击它。我的解决方案适用于除iPhone和iPad之外的所有设备。任何人都可以解释为什么触摸屏上的event.relatedTarget为null?或者是浏览器?还有什么用?

我已经尝试了e.currentTarget和document.activeElement(返回整个HTML主体)以及围绕我使用e.currentTarget尝试setTimeout。我似乎无法在我的焦点,iPad和iPhone上获得点击按钮的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/

1 个答案:

答案 0 :(得分:0)

在我的研究中,我了解到relatedTarget仅适用于鼠标事件。如果在非鼠标事件中relatedTarget不为空,则浏览器不遵循标准。

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