jquery дописать к уже добавленному div - PullRequest
1 голос
/ 26 августа 2010

Можно ли добавить что-то к уже добавленному 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 для создания текстовых входов и редактирования их меток.При нажатии на div «input_label» он должен скрыться с помощью hide () и добавить текстовый ввод со значением «unititled» по умолчанию в div «edit_label».Это работает, если div уже существует, но мне нужно заставить его работать через append.

У кого-нибудь есть идеи, пожалуйста?

1 Ответ

1 голос
/ 26 августа 2010

Вам просто нужно использовать обработчик .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время и привязка к этим элементам , а не к селектору, поэтому он не будет работать для динамически добавляемых элементов.

...