如何使用jQuery在刚出现的元素上设置焦点

7
我有一个准备好的文档块,如下所示:

$(document).ready(function () {
    $('#addTagLink').click(function () {
        $('#addTagField').show();
        $('#addTagField').val("");
        $('#addTagField').focus();
    });
});
addTagField是一个普通的文本输入框,页面加载时有display:none属性设置。当用户点击addTagLink元素时,输入框会正确显示,但焦点不会像预期那样设置在该字段上。
我认为这可能与display:none/show()功能有关,因此将$('#addTagField').focus();更改为另一个字段$('#name').focus();,这样就可以完美解决问题。
请问有人首先能解释一下我遇到这个问题的原因,其次,如何解决这个问题?

1
它在这个fiddle中完美地工作 - 点击“show text”以显示输入并将焦点设置为它。 - Christofer Eliasson
谢谢Christofer - 我找到了问题,是错误的ID! :/ - DaFoot
你可以尝试这个:$('input:text:first').focus(); - Jignesh Rajput
2个回答

7
// Variable to store element
var btn = document.querySelector( ".btn-primary");

// Click Event
$(btn).click(function() {

  // Jquery to define which element will get focus
  $(".form-control").focus();

});

2
虽然这段代码可能回答了问题,但最好在此处包含答案的基本部分并提供参考代码。 - Busti

6
原来问题出在我的元素ID上了。糟糕。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接