【问题标题】:How to check if the last element inside another element is focused如何检查另一个元素内的最后一个元素是否聚焦
【发布时间】:2016-11-25 06:33:24
【问题描述】:

是否有任何 jQuery 代码用于查找 <div> 内的最后一个 <a> 标记是使用键盘聚焦的。 IE。如果 <div> 中的最后一个 <a> 标记被聚焦,则必须触发 Javascript 函数

<div>
  <a>1</a>
  <a>2</a>
  <a>3</a>
  <!-- -->
  <!-- -->
  <a>n</a>
<div>

【问题讨论】:

标签: javascript jquery html jquery-selectors


【解决方案1】:

只需选择最后一个 a 元素并使用 JQuery 添加 focus 事件监听器

$("div a:last-child").focus(function(e){
  console.log("last <a> focused");
  e.preventDefault(); //prevent infinite loop
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <a href="#">a tag</a>
  <a href="#">a tag</a>
  <a href="#">a tag</a>
  <a href="#">a tag</a>
  <a href="#">a tag</a>
</div>

【讨论】:

  • 请检查 - jsfiddle.net/s9mLgjce/5。如果每次显示时标签都在 div 内。我想要 test1 div 中的最后一个标签
  • @Warrior 在你的情况下,使用:last 而不是:last-child。但亚历克西斯正在回答您发布的代码,其中:last-child 完全有效......
  • @Warrior 是的,抱歉。 A. Wolff 是对的,last-child 取决于您的 html 结构。
【解决方案2】:

使用:last-child 选择器找到&lt;div&gt; 中的最后一个元素(在本例中为最后一个锚点&lt;a&gt;),还使用.focus(&lt;callback&gt;) 来监听任何元素上的焦点事件:

$('div a:last-child').focus(function(){
    //Do whatever
});

【讨论】:

  • 虽然这可能是一个有效的答案,但您更有可能通过解释代码的作用和工作原理来帮助他人。仅代码的答案往往受到较少的积极关注,并且不如其他答案有用。
猜你喜欢
  • 1970-01-01
  • 2017-08-04
  • 2016-12-31
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 2019-04-08
  • 2019-02-12
  • 2016-06-29
相关资源
最近更新 更多