我想在文本区域上使用聚焦,将导致聚焦的单击按钮的值存储起来,然后在进行一些处理之后单击它。我的解决方案在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,则说明浏览器未遵循标准。
您可能必须在单击时将按钮和/或按钮值临时存储在变量中,以便以后可以在第二次单击时使用。