Показать сообщение отдельно
  #5 (permalink)  
Старый 25.12.2017, 11:17
7in 7in вне форума
Новичок на форуме
Отправить личное сообщение для 7in Посмотреть профиль Найти все сообщения от 7in
 
Регистрация: 25.12.2017
Сообщений: 4

Сообщение от Nexus Посмотреть сообщение
7in, в представленном вами коде изменяется только контент блока ".stick_error" и ничего более.
Вероятно при изменении элементов на странице затираются их обработчики.
В данной функции, да. Мой косяк - не пояснил.

Есть ещё ряд функций, которые изменяют кол-во строк таблицы и обновляют их содержимое AJAX'ом. При этом структура никак не изменяется, т.е. в каждой строке выводится одно и то же Name 1, Name 2,... , Name N. И меняется id, соответственно, в той же прогрессии.

Я не стал выкладывать весь код, т.к. его довольно много.

Есть ещё функция:
function stickEdit(){
    $('.table #edit').each(function(){
        $(this).on('click',  function(){
            var index = $(this).attr('name');
            oldname = $(".table #"+index).text();
            var data = {
			    action: "stick_mat_type_e",
			    name: oldname
		    };
		    var editAjax = $.post(ajaxurl, data, function(response){
		        editAjax.complete(function(){
		            var count = $.parseJSON(response).length;
		            var cats = $.parseJSON(response);
		            if(count>1){
		                $('input:checkbox:checked').prop('checked', false);
		                for(var i=0;i < count;i++){
		                    $('input:checkbox[value="'+cats[i]+'"]').prop('checked', true);
		                    $('#stick_text').val(oldname);
		                    $('html, body').animate({scrollTop: 0},500);
		                    $('#to_complete').empty().text('Изменить');
		                }
		            }else{
		                $('input:checkbox[value="'+cats+'"]').prop('checked', true);
		                $('#stick_text').val(oldname);
		                $('html, body').animate({scrollTop: 0},500);
		                $('#to_complete').empty().text('Изменить');
		            }
		        });
		    });
        });
    });
}


Делает примерно то же самое, обработчик на ней тот же и вызывается прямо рядом с первой. Возможно, она затирает обработчик?

Тогда вопрос такой. Обработчики
$('.table').each(function(){
        $(this).on('click', '#delete',  function(){
        });
});

и
$('.table').each(function(){
        $(this).on('click', '#edit',  function(){
        });
});

это одно и то же, мешают ли они друг другу? Если да, то как выйти из ситуации?
Ответить с цитированием