У нас есть следующий код
HTML
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
$('.details').on('click','.remove', function() {
$.ajax({
url : 'remove',
type : 'GET',
success : function(event) {
event.preventDefault();
$(this).closest("tr").remove();
}
});
}
});
</script>
</head>
<html>
<div class="details">
<table>
<thead>
...
</thead>
<tbody>
<tr>
<td><button class="remove" value="somevalue1">clickme!</button></td>
<td><button class="remove" value="somevalue2">clickme!</button></td>
<td><button class="remove" value="somevalue3">clickme!</button></td>
</tr>
</tbody>
</table>
</details>
</html>
К сожалению не работает, как удалить где кнопка? (конечно, функция работает, например: alert ())
ОБНОВЛЕНИЕ: проверьте сейчас ...
1 ответ
В вашем коде есть разные проблемы.
1, ваш HTML недействителен. Вам нужно обернуть вашу кнопку внутри tr
и td
2, нет элемента с классом .details
. Если такой элемент есть, он должен быть родителем таблицы. Тогда будет работать только делегирование событий.
3. Вы можете использовать .closest()
вместо callong parent()
дважды
Ваш html должен выглядеть так
<table>
<thead>
...
</thead>
<tbody>
<tr>
<td>
<button class="remove" value="somevalue1">clickme!</button>
</td>
</tr>
<tr>
<tr>
<td>
<button class="remove" value="somevalue2">clickme!</button>
</td>
</tr>
<tr>
<td>
<button class="remove" value="somevalue3">clickme!</button>
</td>
</tr>
</tbody>
</table>
И jquery будет
$(document).on("click", ".remove", function(e) {
e.preventDefault();
$(this).closest("tr").remove();
});
В приведенном выше примере я делегировал событие щелчка с помощью document
. Вы можете заменить его любым другим родительским элементом, который присутствует в готовом домене.
В вашем коде editerd $(this)
относится к ajax, а не к элементу, на который кликнули. Поэтому вам нужно временно сохранить его, чтобы передать его в обработчик успеха.
$('.details').on('click', '.remove', function(event) {
event.preventDefault();
var obj = $(this)
$.ajax({
url: 'storageorder-inventory-remove',
type: 'GET',
success: function() {
$(obj).closest("tr").remove();
}
});
});
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.
.details
в вашем HTML.