- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
当 FocusOut 事件被引发时,您如何知道哪个元素获得焦点?
正确的方法似乎是使用事件的 relatedTarget 属性。但是,这似乎不适用于所有浏览器:
我找到了一个仅在 IE 中有效的解决方法(使用 document.activeElement),但我想知道是否没有一个已证明在所有主要浏览器中都有效的通用解决方案。
虽然我可以找到类似的问题和答案,但我还没有找到真正适用于所有浏览器的解决方案。
编辑:下面的例子说明了我的意思。
代码:
document.getElementById('text1').addEventListener('focusout', function(e) {
// At this point, I want to know which element is receiving the focus (i.e. text2)
console.log(e.relatedTarget); // works in Chrome
console.log(document.activeElement); // works in IE
// both do not work in Firefox or Safari
});
<input id="text1" type="text" value="first" />
<input id="text2" type="text" value="second" />
最佳答案
我有一个针对 Firefox 的假设和解决方法。 document.activeElement 似乎有效。然后 focusout 命中,所以它被删除。到 focusin 命中时(或者可能紧接着),将再次有一个 focused 元素。但是在 out 和 in 之间没有任何焦点,因此没有元素被报告为事件的。
我的解决方法是愚蠢的 setTimeout hack。 setTimeout( function() {console.log(document.activeElement)}, 1);
可靠地为我提供了一个事件元素。诚然,我只在一台机器上进行了测试,并且测试了 90 秒,但这是迄今为止我发现的最好的结果。
关于JavaScript FocusOut - 获取获得焦点的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22879572/
我正在使用 jQuery UI 模式对话框,并用一些表单字段填充它。由于这个错误:http://bugs.jqueryui.com/ticket/4731 ,当对话框打开时,第一个输入获得焦点。为了解
我正在使用handsontable jQuery 插件。我试图在用户停止编辑单元格时进行拦截。当您双击某个单元格时,带有 handsontableInput 类的文本区域会出现在该单元格的位置。 使用
我正在处理两个事件,都是 focusout和keydown ,在 $(elementID).on()事件处理程序。 调用$(elementID).off("focusout keydown");作为
Focusout事件后,不触发click事件。 我的设计是, jQuery, $(document).ready(function () { var field = $("#txt"); var
我在代码中使用focusout,我需要知道单击哪个元素来触发focusout,因为如果特定元素,我需要执行特定函数负责触发 focusout 我尝试使用stopPropagation,但它不起作用
我已经在这个论坛上阅读了很多次,但现在我有一个自己的问题。我需要将字符串 01.01.2014 替换为 1。 1. 2014年。我一直没能找到解决方案。这是我距离最近的一次。 $('#date').f
我有一个带有文本输入#usernameInput 和链接#saveLink 的表格单元格。使用 jQuery,我有一个分配给 #saveLink 的单击事件的函数。 我想要实现的是,当#usernam
我只是想隐藏一个div,如果文本框失去焦点,除非用户单击另一个特定的div。如果用户单击该特定 div,则焦点不会触发 div.box 被隐藏。 下面是带有我的伪代码注释的代码。有什么想法吗? tex
// 动态生成文本框 buffer += "" + nomen_list.getName() + ""; 我得到了动态文本框,但是 focusout 不适用于动态生成的文本框,而同一页面有一些文本框,
我有一个问题。我正在使用 jQuery 1.8.2。我想对 focusout 事件使用react,并将 focs 重置为在特殊条件下留下的元素。现在我得到了这个非常简单的代码片段,它在 safari
我有以下标记: 1 2 1 2 和以下 JQuery 代码: $(document).ready(function() { $('select').e
首先,我有一个 Google 可视化数据表。 之后,我创建一个 for 循环来获取表格单元格值并将其放入输入字段中: for (var y = 0, maxrows = data.getNumberO
我正在尝试创建一个在任何类元素失去焦点时触发的函数: ON Time am pm OFF Time pm am 我知道这不对,但我想要类似的东西: $('.timeSetting'
我有一个动画搜索栏,当用户点击它以外的地方时,它会隐藏起来。然而,这会导致直接单击旁边的提交按钮被忽略。我该如何解决这个问题? HTML,
我想在聚焦时使占位符文本闪烁。 这是我的 html 代码: 这是我的 jquery 代码: $('#keyfob').on("focus blur", function(){ $(this)
当 FocusOut 事件被引发时,您如何知道哪个元素获得焦点? 正确的方法似乎是使用事件的 relatedTarget 属性。但是,这似乎不适用于所有浏览器: 在谷歌浏览器中,它有效 在 Firef
给定示例标记: 如何通过 jQuery 确定 div 失去焦点? 我可以使用 focusout() 但这并不是我所需要的。使用 focusout,它将作为从一个输入到
我想,在失去对 的关注后字段,对此字段的值执行一些操作,包括更改内容本身(使其变为大写) 如下code : HTML JavaScript + jQuery $("#name") .focu
我希望在 class="date"的输入元素上触发 focusout 事件,并驻留在 class='datatable' 的表中,无论是对于 DOM 中的元素还是动态添加的元素。对于动态添加的元素(使
我试图在失去焦点后调用方法,不幸的是我的 Jquery 没有调用 .focusout 方法。 代码: $("#account-number").focusout(function() { cons
我是一名优秀的程序员,十分优秀!