【问题标题】:How do I get active element class with Jquery if it's dynamic如果它是动态的,如何使用 Jquery 获取活动元素类
【发布时间】:2013-01-14 03:22:42
【问题描述】:

当我尝试在 javascript (document.activeElement.tagName) 中获取活动元素时,它不断返回 BODY。输入元素是用 jquery 创建的。

情况如下: 在页面加载时,我通过 jquery 创建了一个输入框。 (标准类,动态id)

单击按钮时,我想测试是否选择了该输入框

感谢您的帮助

【问题讨论】:

标签: jquery dynamic textinput


【解决方案1】:

document.activeElement 返回当前焦点元素。当没有焦点元素时,活动元素是页面的body

当你点击button时,文本框不再有焦点,所以总是返回body元素。

查看更多信息:https://developer.mozilla.org/en-US/docs/DOM/document.activeElement

【讨论】:

    【解决方案2】:

    您必须通过监控最后点击的项目来跟踪最后选择的项目。

    以下脚本应该完成您正在寻找的内容。

    jsFiddle

    JS

    $('body').append(
      //Dynamic Inputs being added
      $('<input />', { 'id':'test', 'type':'text'})
    ).append(
      //Dynamic Inputs being added
      $('<input />', { 'id':'test2', 'type':'text'})
    ).on('click', 'input[type="text"]', function(e){
      //Keep track of the last selected input
      $('.lastSelected').removeClass('lastSelected'); 
      $(this).addClass('lastSelected'); 
    }); 
    
    //Get the last selected input from the page on a button click
    $('#mybutton').click(function(e){
      var items = $('.lastSelected')
      if(items.length > 0){
        alert($('.lastSelected').attr('id')); 
      }
    }); 
    

    HTML

    <input id='mybutton' type='button' value='Click Me' />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-20
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2018-11-11
      • 1970-01-01
      相关资源
      最近更新 更多