javascript - 不调用 jQuery 单击函数来删除动态生成的文本框

标签 javascript jquery html css click

<分区>

我在删除动态生成的文本框上的按钮时遇到问题。单击函数根本不会被调用,我不确定为什么。有人可以指出我正确的方向吗?


这是代码:

HTML

<div class="panel panel-default">
    <div class="panel-heading">Additional Authors</div>
    <div class="panel-body">
        <input id="addAuthorButton" type="button" value="Add Author" class="btn btn-lg btn-default btn-block" />
        <div id="additionalAuthorsTextboxes">

        </div>
    </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

JS

$(document).ready(function(){

    var counter = 0;

    $("#addAuthorButton").click(function () {

        if(counter==5){
            alert("Only 5 additional authors allowed.");
            return false;
        }

        counter++;

        var newTextBoxDiv = $(document.createElement('div'))
            .attr("id", 'additionalAuthor' + counter).attr("class", 'additionalAuthor input-group');

        newTextBoxDiv.after().html("<span class='input-group-addon'><span class='glyphicon glyphicon-user'></span></span><input class='form-control' type='text' placeholder='Author Name'><span class='input-group-addon'><span style='color: red;' class='glyphicon glyphicon-remove removeAdditionalAuthor'></span></span>");

        newTextBoxDiv.appendTo("#additionalAuthorsTextboxes");

    });

    $(".removeAdditionalAuthor").click(function () {
        $(this).closest('div').remove();
    });
});

CSS

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css');
@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css');


我还设置了一个 JSFiddle 页面:https://jsfiddle.net/302xsar2/2/

最佳答案

您需要使用事件委托(delegate)将事件附加到动态生成的元素:

$("#additionalAuthorsTextboxes").on('click','.removeAdditionalAuthor',function () {
    $(this).closest('div').remove();
});

关于javascript - 不调用 jQuery 单击函数来删除动态生成的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432918/

上一篇:jquery - Google Maps InfoWindow,使用 jQuery 撤消子元素的样式

下一篇:jquery - 有很多定位嵌套元素时,如何给特定的div元素设置绝对位置

相关文章:

jquery - 使用 WordPress Rest API 加载帖子

javascript - 您将如何使用 querySelector 来获取此元素?

css - Dreamweaver CS6 : How to apply 2 different text styles in one line?

Javascript - 通过键检索值,包括嵌套对象

javascript - CKEditor 将 block 引用更改为 p

javascript - 将 Youtube 的 javascript API 与 jQuery 结合使用

jQuery 顺序列表问题

html - Flex - 图像约束

javascript - 将 iPhone 检测添加到 jQuery 脚本

javascript - 读取一个大文本文件的 n 行