Показать сообщение отдельно
  #1 (permalink)  
Старый 23.06.2021, 11:57
Аватар для mav1
Аспирант
Отправить личное сообщение для mav1 Посмотреть профиль Найти все сообщения от mav1
 
Регистрация: 30.08.2010
Сообщений: 57

Как запустить js/jquery функцию после того, как содержимое страницы обновлено ajax-ом
Доброго времени суток.



У меня есть страница с таблицей с постраничной навигацией. Навигация по страницам происходит с помощью ajax - когда я кликаю по номеру страницы, запускается функция LoadContent(), которая обновляет содержимое страницы. Также я использую кое-какой jquery скрипт для того, чтобы модифицировать содержимое таблицы после того, как она загружена:

function addNamesAttr() {
        $('.MyTable tr)').each(function () { 
   $(this).attr('name', ''); // добавляет пустой атрибут name для каждой строки
});
        console.log('names are applied');
    }
    
    
    $( document ).ready(function() {
        addNames();
});

Проблема в том, что эта функция addNamesAttr() срабатывает только на первой странице, то есть до перехода по навигационным ссылкам. Когда я переходу на вторую страниц и далее, функция не срабатывает. Наверное, можно было бы вставить addNamesAttr() внутрь LoadContent() (после ajax события), но я не могу это сделать так как нет возможности изменить содержимое LoadContent() по причине того, что это встроенная функция в генератор кода, который я вынужден использовать для этого сайта (это scriptcase).

Я пытался запускать addNamesAttr() при клике по ссылкам навигации 2/3/... (у этих ссылок есть класс ".PageLink"), с помощью этого кода:

$( document ).ready(function() {
        $('.PageLinkClass').on('click', function() { 
            addNames();
        });
        });


но это не решает задачу, так как она запускается до того, как ajax-обновление страницы полностью выполнено. Так как же заставить addNamesAttr() запускаться на всех страницах?
Ответить с цитированием