Почему может не работать ajax

Почему не срабатывает success в ajax запросе?

Встретился с проблемой, что не работает «success», сам ajax вроде работает, данные отправляются на обработчик.
javascript:

  • Вопрос задан более трёх лет назад
  • 11658 просмотров

@Norbyt попробуйте выполнить запрос (я заменил строками значения переменных)

Я намеренно убрал указание типа получаемого контента. Выполнили, посмотрели консоль, сделали вывод.
Если сработал success, добавляем dataType: ‘json’ и выполняем, смотрим консоль.

Пишем сюда и потом думаем, что и как.

@Norbyt вы точно делали то, что я написал? Проблему нужно искать, уменьшая проблемный код. Если вам требуется DOMContentLoaded, то это значит, что вы продолжаете тестировать посторонний проблемный код. Так можно долго ковыряться.

Ещё раз — создайте пустой документ и в нём выполните ровно то, что я просил.
ПыСы. $(document).ready() => $()

@Norbyt ничего вы не забыли. Уберите. Срочно.
Аргументом метода click (и всех методов для работы с событиями) может быть только функция, а не результат её работы. То есть срабатывает click, и только тогда запускается RunAjax.

Это значит, что ошибка осталась в коде.

ПыСы. И зачем вы называете свои ошибки позорными? Это — моя работа, а вы делаете её за меня:)) Шучу. Я их так тоже не называю.

Источник

Почему не работает javascript после ajax получения ответа?

На странице реализована фильтрация товаров через ajax.
После получения ответа от сервера и его вставки на страницу перестает работать скрипт с ховер эффектом.

Скрипт подключен в head

Код отправки ajax запроса и обработка ответа

Пробовала строку
$(«#sectionproducts»).empty().append(content);
заменить на
$(«#sectionproducts»).empty().html(content);
Результат не меняется

Как можно решить проблему работы скриптов после отправки ajax запроса?

  • Вопрос задан более трёх лет назад
  • 33015 просмотров

Добрый день.
Может это конечно и некропост, но все же я хотел написать по поводу 2го пункта, про событие jQuery.on().
Везде написано

Но более точное и правильное я нашел в сети, чтобы скрипт отрабатывал именно на подгруженных ajax элементах:

Решено! JQuery обработчики, такие как hover(), click(), bind(), on() и т.д. обрабатывают элементы только при загрузке.
Чтобы они реагировали на подгруженный ajax’ом контент, есть несколько решений:

  1. Загрузить ajax’ом скрипт заново(не лучший вариант). Но работает.
  2. Использовать обработчик live(). Но с версии >= JQuery 1.9 его убрали и перенесли в обработчик on(), в котором объединили и bind(), и delegate().
  3. На мой взгляд, самый лучший. Для тега установить атрибут onClick, установить ему значение функции, например:
    а в скрипте переделать обработчики в функцию.
    Вместо:

Т.е. у тэга div при нажатии атрибут onClick вызывает эту функции. И тут без разницы, подгружен контент ajax’ом или нет.
Если хотите в функции использовать значение $(this), то задайте в атрибуте у функции onClick=»function_name(this);», а в скрипте в функции задайте событие для этого значения

Надеюсь, кому-то будет полезно 🙂

Почему такой вариант не рассматривается?

Я так пользуюсь давно. сам когда-то натыкался на это, но так же быстро решил. оказывается это прям ВОПРОС))

Для извращенцев, вот так ещё можно:

Спасибо, по всякому уже пробовал, это помогло!

Источник

Читайте также:  Как настроить win 2012 server
Оцените статью