如何在使用JQuery动态创建dom元素后隐藏它?

ism*_*sow 4 javascript jquery dom

我正在尝试构建一个表单,用户可以通过单击"添加选项"按钮添加文本字段.他们还可以通过Jquery动态创建的"删除选项"链接以及文本字段删除添加的字段.

JavaScript的:

$(document).ready(function(){
    $("#add_option").click(function()
      {
        var form = $("form");
        var input_field = '<input type="text" />';
        var delete_link = '<a href="#">remove</a>';
        form.append(input_field + delete_link);

        return false;
    });

    $("a").click(function()
    {
        alert('clicked');
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

当我点击"add_option"按钮时,会出现一个新的文本字段和"delete_link".但是当点击JQuery创建的"delete_link"时,浏览器会跟踪链接而不是启动显示"clicked"的弹出窗口.

如何在使用JQuery动态创建dom元素后隐藏它?

ant*_*ant 6

我使用委托,因为它使用较少的冒泡:

$(document).delegate("a", "click", function(){
 alert('clicked');
});
Run Code Online (Sandbox Code Playgroud)

编辑,这是您需要更改的代码:

$(document).ready(function(){
       $("#add_option").click(function(){
               var form = $("form");
               var input_field = '<input type="text" />';
               input_field.addClass = "dynamic-texfield";
               var delete_link = '<a href="#" class="delete-trigger">remove</a>';
               form.append(input_field + delete_link);

               return false;
           });
Run Code Online (Sandbox Code Playgroud)

然后代表部分:

$(document).delegate(".delete-trigger", "click", function(){
     alert('ready to delete textfield with class' + $(".dynamic-texfield").attr("class"));
});
Run Code Online (Sandbox Code Playgroud)