据此:https ://developer.mozilla.org/en-US/docs/Web/Reference/Events/focusout
relatedTarget (只读) - EventTarget (DOM 元素) - 事件目标接收焦点。
我假设 eventObject.relatedTarget 应该指向将接收焦点的元素。
例子
这是我正在使用的代码:http: //jsfiddle.net/DMINATOR/L38pG/
<div data-role="header">
<h1>Page Title</h1>
</div><!-- /header -->
<div data-role="content">
<p>Click here: <textarea id="js-result" style="width:80%;vertical-align:top"></textarea></p>
<div>Result <p id="result-of-click"></p></div>
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
<div data-role="controlgroup" data-type="horizontal">
<input data-icon="arrow-l" data-inline="true" type="button" name="btnMoveLeft" id="btnMoveLeft" value="Left" />
<input data-icon="arrow-r" data-inline="true" type="button" name="btnMoveLeft" id="btnMoveRight" value="Right" />
</div>
</div><!-- /footer -->
JS:
$("#js-result").focusout(function (eventObject) {
var relatedTarget = eventObject.relatedTarget;
var message = "[DEBUG] - [FOCUSOUT] - Result relatedTarget = " + relatedTarget + " id=" + relatedTarget.id;
$("#result-of-click").text(message);
console.log(message);
});
使用不同的浏览器运行相同的代码:Opera 和 Safari 会产生不同的结果。
重现步骤
- 单击文本区域
- 单击标题上的“右”按钮
预期结果(参见 Opera)
歌剧:
Safari:(
出于某种原因,Safari 指向主页作为将被聚焦的页面)
我正在尝试隐藏/显示标题,具体取决于我使用的文本区域是否接收焦点,这是一个示例: //jsfiddle.net/DMINATOR/LLcpR/
问题
这是 jquery(移动)或 Safari 本身中的错误吗?是否有任何解决方法,所以我可以找到接下来将聚焦的按钮?