Теперь, когда вы разместили сгенерированный HTML, ясно, что вы поместили вывод jQuery в цикл, который генерирует ваши TD-элементы.Он должен выходить за пределы этого цикла, предпочтительно внизу страницы!
Если вы посмотрите на HTML, вы увидите это 3 раза:
<script type="text/javascript">
$(document).ready(function () {
$('.deleteRow').click(function (event) {
event.preventDefault();
event.stopPropagation();
if (confirm('Delete?')) {
var $t = $(this);
$.post($(this).attr('href'), function (data) {
if (data) {
$t.parent().parent().remove();
}
});
}
return false;
});
});
</script>
Теперь вы может сказать: "Да, он определен три раза, но не должен ли он все же выполняться один раз? В конце концов, я перераспределяю обработчик кликов!"Ну нет.Метод jQuery .click () привязывает функцию к определенному событию, добавляя эту функцию в список eventListeners для этого события.Так обычно работает привязка событий в Javascript.Привязка означает добавить его в список.
Если вы хотите убедиться, что добавляемый вами обработчик щелчков является ЕДИНСТВЕННЫМ обработчиком щелчков для элемента, вам нужно сначала использовать unbind :
$('.deleteRow').unbind('click').click(function (event) { // rest of code...
вместо этого:
$('.deleteRow').click(function (event) { // rest of code...