Сценарии больше не работают после ajax запрос

Есть стол на странице, которую я обновляю по ajax. Есть некоторые сценарии, те используют содержание стола. Например, один из них использование" Проверку все/Снятие флажка все " флажок на столе, чтобы проверку/снятие флажка другие флажки на том столе.

Когда я делаю запрос ajax, он возвращается почти то же самое содержание стола. По крайней мере, это определенно правильное и не должно разрушать функциональность сценариев. Однако после этого ни один из сценариев больше не работает. Почему?

Например, вот часть кода JavaScript в *.js файле:

$(document).ready(function() {
  $("#check-all").change(function(){
      $(".my_table input[type=checkbox]").prop('checked', this.checked);
    });
});

Прежде, чем выполнить ajax, просите, чтобы все работало хорошо. Обратите внимание, что ajax не возвращает кода JavaScript, весь код JavaScript расположен во внешнем JS файле.

1
nl ja de
.change() работа привычки для содержания, добавленного, используя AJAX (т.е. элементы, добавленные после того, как, обработчик событий связан) - взглянул на .on ()
добавлено автор ManseUK, источник

2 ответы

Поскольку вы используете обработчик событий, который прибавляется document.ready, и что-либо добавило после того, как у него не будет событий.

После jQuery 1.7 можно использовать на.

$(document).on("change", "#check-all", function(){ ... });

другой выбор состоит в том, чтобы держать то, что вы имеете, просто вспомните код, когда вы обновляете содержание страницы.

function addChangeEvent() {
  $("#check-all").change(function(){
      $(".my_table input[type=checkbox]").prop('checked', this.checked);
    });
}

$(document).ready(function() {
    addChangeEvent();
});

и с вашим требованием Аякса

$("#foo").load("xxx.html", function(){ addChangeEvent()l });
5
добавлено
Это так? Все добавило после того, как у этого есть точно те же самые иды и классы.
добавлено автор Alexandre, источник
<<другой выбор состоит в том, чтобы держать то, что вы имеете>>, Пожалуйста, объясните.
добавлено автор Alexandre, источник
@Alexandre, это не имеет значения. Вы демонтируете обработчики событий, когда вы заменяете его. Браузер волшебно не знает, как повторно использовать его.
добавлено автор epascarello, источник

Событие присоединено к старому содержанию страницы. Если вы заменяете то содержание, события идут с ним.

Вместо этого попытайтесь использовать $ (" #check-all") .on ("изменение", функция() {...}); я не эксперт jQuery, но я полагаю, что это сохранится обработчик событий, даже если элемент изменится.

2
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков