jquery附加到已经附加的div

时间:2010-08-25 23:18:13

标签: javascript jquery forms append

是否可以将某些内容添加到已经附加的div中?我试过但没有任何反应..(我没有在实际的js中使用换行符)

$(document).ready(function() {

    $('.add_text_input').click(function() {
        $('li').append('<div class="input_label">Untitled</div>\
                        <div class="edit_label"></div>\
                        <input type="text" name="untitled" /><br />');
    });

    $('.input_label').click(function() {    
        var input_label = $(this).html();   
        $(this).hide();
        $('.edit_label').append('<input type="text" name="untitled" value="' + input_label + '"/><br />');
    });

});

js用于创建文本输入和编辑标签。当单击“input_label”div时,它应隐藏使用hide()并在“edit_label”div中附加带有默认“无标题”值的文本输入。如果div已经存在但是我需要通过追加来使它工作。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您只需在此处使用.live()处理程序,如下所示:

$('.input_label').live('click', function() {
  var input_label = $(this).html();   
  $(this).hide().next('.edit_label')
    .append('<input type="text" name="untitled" value="' + input_label + '"/><br />');
}); 

这将对元素起作用,无论它们何时被创建,因为它可以处理事件冒泡,它可以处理与click选择器匹配的任何元素的.input_label事件。

目前使用.click(),它会找到document.ready时存在的所有元素,并将绑定到这些元素,而不是选择器,因此它不会动态生效添加元素。