gpt4 book ai didi

javascript - 在刷新页面之前无法重复获得焦点

转载 作者:行者123 更新时间:2023-11-30 20:20:51 25 4
gpt4 key购买 nike

我在一篇文章的底部设计了一个脚注来注释后续状态;

<article class="col-md-12">
</article>
<div class="col-md-12 footnote">
<a href="{% url 'article:footnote_add'%}">add a footnote</a>
</div>

当“add a footnote”链接被点击后隐藏时提示我设置autofocus textarea的“footnote form”。 “autofucus”工作正常。

$('.footnote-link a').on('click', function (e) {
e.preventDefault();
...
var $footnoteForm = $(`
<form class="article-footnote-form footnote-form" style="margin-top:10px" >
<div class="form-group row">
<div class="col-md-9">
<textarea class="form-control" name="footnote" rows="3" autofocus></textarea>
</div>
<div class="col-md-3">
<button class="btn btn-primary" type="submit" id="articleFootnoteBtn">Add Annotation</button>
</div>
</div>
</form>`);
$articleFootnoteLink.parent().hide();
$articleFootnoteLink.parent().after($footnoteForm);

使用 Ajax 将表单提交到服务器,然后我通过

清除了表单

$footnotesTop.find(".footnote-form").html("")。现在页面显示文章和新添加的脚注。

但是,如果我再次点击“添加脚注”,它无法像第一次那样自动获得焦点,直到我刷新页面才能点击。

如何在第二次点击事件中获得表单焦点。

最佳答案

您需要使用委托(delegate)事件处理程序。 js 代码 $('.footnote-link a').on('click', function (e) { 仅应用于 jQuery 在加载页面时使用该选择器找到的元素。

尝试 $( document ).on('click', '.footnote-link a', function (e) {。您可以使用更紧凑的选择器而不是 document - 看起来像 .footnote 将根据我所看到的进行工作。

jQuery delegated events tutorial

关于javascript - <autofocus> 在刷新页面之前无法重复获得焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com