2010-08-25 62 views
1

是否有可能將某些東西添加到已添加的div中?我試過,但沒有任何反應。(我不使用換行的實際JS)jquery追加到已附加div

$(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中附加一個默認的「untitled」值的文本輸入。它工作,如果divs已經存在,但我需要通過追加使其工作。

有沒有人有任何想法嗎?

回答

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時間和結合這些要素,而不是選擇,因此它不會對動態添加元素的工作。

+0

它的工作原理!我很高興這很簡單:)謝謝! – 2010-08-25 23:32:44