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

发布于 2025-01-06 22:36:24 字数 553 浏览 0 评论 0原文

我有一个文档就绪块,如下所示:

$(document).ready(function () {
    $('#addTagLink').click(function () {
        $('#addTagField').show();
        $('#addTagField').val("");
        $('#addTagField').focus();
    });
});

addTagField 是一个常规文本输入,在页面加载时由 css 设置了 display:none 。

当用户单击 addTagLink 元素时,输入字段会正确显示,但焦点不会按预期设置到该字段。

我认为这一定与 display:none / show() 功能有关,因此将 $('#addTagField').focus(); 更改为另一个字段 $(' #name').focus();效果很好。

任何人都可以建议首先为什么我看到这个问题,其次如何解决它?

I have a document ready block as follows:

$(document).ready(function () {
    $('#addTagLink').click(function () {
        $('#addTagField').show();
        $('#addTagField').val("");
        $('#addTagField').focus();
    });
});

The addTagField is a regular text input that has display:none set by css on page load.

When a user clicks on the addTagLink element the input field is shown correctly but focus doesn't get set to the field as intended.

I figured it must be something to do with the display:none / show() functionality, so changed the $('#addTagField').focus(); to another field $('#name').focus();which worked perfectly.

Can anyone suggest firstly why I see this issue and secondly, how to fix it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青丝拂面 2025-01-13 22:36:24
// 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();

});
// 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();

});
终遇你 2025-01-13 22:36:24

事实证明这是我的元素 ID 的问题。哎呀。

Turns out it was a problem with my element IDs. Oops.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文