2013-04-02 4 views
-1

У меня есть таблица, в которой я не могу удалить строки из того, что я пытаюсь. Его простая таблица из 5 столбцов и несколько строк, созданных с помощью поиска php/mysql с использованием Json. В конечном итоге я хотел бы удалить строку из таблицы mysql нажатием кнопки, но я застрял с «легкой» частью удаления строки в jquery.Onclick удалить строку таблицы jQuery

Вот код, чтобы создать свою таблицу:

var table = $('<table></table>').addClass('tbc'); 
for (var i = 0; i < json.admin_tables.length; i++) { 
var row = $('<tr></tr>').addClass('guid').attr('id', i).add('<td>' + json.admin_tables[i].Room + '</td><td>' + json.admin_tables[i].time + '</td><td>' + json.admin_tables[i].Desk + '</td><td>' + i + '</td><td><input type="button" id="'+ i + '" class="delete" value="Delete row ' + i + '"</td>'); 
table.append(row); 
$('#roomTable').append(table); 
} 

Следующий код ничего не делает вообще однако (без ошибок в поджигатель)

$('.delete').click(function() { 
    $(this).closest("tr").remove(); 
} 

Изменение «тр» на «ТД» будет удалите только кнопку, и я не хочу удалять каждое поле отдельно!

ответ

2

В .delete элементы вставляются динамически, так что вам нужно делегированные обработчики событий нацелить их:

$('#roomTable').on('click', '.delete', function() { 
    $(this).closest("tr").remove(); 
}); 
+0

@nathanhayfield - Почему? – adeneo

+0

nope adeneo ничего не делает для меня. Я попробовал пустую() также, чтобы быть уверенным. Вы можете увидеть это здесь: http://examtime.atwebpages.com/admintable.php – user1569869

+0

, если вы используете более старый jquery, возможно, вам понадобится http://api.jquery.com/delegate/, а не on. @adeneo думает больше об этом, я думаю, что это просто скорость. удаление длилось долго, и, опустошив его, сначала он поскорее поскользнулся. –

Смежные вопросы