【问题标题】:$(document.activeElement) is not working in Firefox [closed]$(document.activeElement) 在 Firefox 中不起作用 [关闭]
【发布时间】:2015-11-26 10:41:41
【问题描述】:

我需要在我使用的网页上获取当前活动元素

 $(document.activeElement)[0].id 

这在 Internet Explorer 中运行良好,但在 Firefox 中它总是返回空字符串 ""

请告诉我如何在 Firefox 中获取活动元素的id

这是一个简单的场景

我有 2 个 ID 分别为 div1 和 div2 的 div,现在当用户点击它们时,我应该得到它的 ID

这是我的标记

http://pastebin.com/BCW8ECMx

【问题讨论】:

  • 这就是方式,尽管$()[0] 并不是真正需要的。如果它返回"",那么activeElement 可能没有设置id。评估该行时,具有焦点的元素是您期望的元素吗?您能否详细说明并可能包含相关标记?也许是 JSFiddleJSBin 来演示?
  • 请使用console.log(document.activeElement) 调试您的应用程序,看看它是否是您所期望的元素。这几乎总是解决此类问题的第一步。
  • 请注意 document.activeElement 并不总是可用的,当没有选择时,活动元素是页面的 或 null。在 Mac 上,除了文本输入元素之外的任何其他元素都不会获得焦点,这可能会导致错误,因为您的脚本需要一个非空数组。
  • 我已经用标记更新了问题

标签: javascript jquery element document


【解决方案1】:

为什么不使用活动的target

$(document).ready(function () {
   $(document).click(function (e) {
      alert(e.target.id);
   });
});

找到的 JSFiddle 示例 here.

【讨论】:

  • 谢谢!这也有效。
【解决方案2】:

问题不在代码中。但是,div 不能处于活动状态。

事实上,用户无法交互的元素是无法激活的。

对于此类元素,将返回 <body> 的 id。

【讨论】:

猜你喜欢
  • 2013-05-26
  • 2012-10-29
  • 2015-11-09
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 2013-09-28
相关资源
最近更新 更多