我有一個簡單的表單,它允許某人添加/刪除額外的電話號碼。出於某種原因,我無法在Javascript中看到錯誤。用戶可以添加新的數字作爲列表項沒有任何問題 - 每個列表項都有一個按鈕來刪除列表項。如果用戶點擊第一個列表項刪除按鈕,則刪除該項目。沒有任何與JS一起添加的列表項目將從頁面中刪除。使用jQuery .remove()僅刪除第一個列表項
這似乎很簡單,但我很難過。我花了最近兩個小時試圖解決這個在stackoverflow和谷歌搜索。我知道在解決問題時我會感到無聊,但我可以用一些幫助。
HTML
<ul class="telRow">
<li id="telid_1234">
ONE <button class="telRowRemove">-</button>
</li>
</ul>
<div>
<button class="telRowAdd">+</button>
</div>
<div id="errors">No errors</div>
<div class="emptyTel" style="display: none;">
<input type="text" name="tel_no[]" />
<button class="telRowRemove">-</button>
</div>
JS
$(document).ready(function(){
$('.telRowAdd').on('click', function() {
var Container = $('ul.telRow');
var newrow = '<li>ONE <button class="telRowRemove">-</button></li>';
Container.append(newrow);
$('#errors').text('Added');
});
$('.telRowRemove').click(function() {
$(this).parent('li').remove();
$('#errors').text('Removed');
});
});
刪除按鈕具有一類.telRowRemove的,所以在按鈕上單擊理論會觸發$( 'telRowRemove') .click,但它只對頁面上的原始列表項目執行此操作,而不是其他列表項目。
我對JS斌設置示例這裏http://jsbin.com/omanij/1/edit
輝煌!謝謝Blender,這很有用。使用術語「事件代表團」我現在也明白了爲什麼。 – 2013-03-25 03:53:23