Почему не работает javascript после ajax получения ответа?
На странице реализована фильтрация товаров через ajax.
После получения ответа от сервера и его вставки на страницу перестает работать скрипт с ховер эффектом.
Скрипт подключен в head
Код отправки ajax запроса и обработка ответа
Пробовала строку
$(«#sectionproducts»).empty().append(content);
заменить на
$(«#sectionproducts»).empty().html(content);
Результат не меняется
Как можно решить проблему работы скриптов после отправки ajax запроса?
- Вопрос задан более трёх лет назад
- 33034 просмотра
Добрый день.
Может это конечно и некропост, но все же я хотел написать по поводу 2го пункта, про событие jQuery.on().
Везде написано
Но более точное и правильное я нашел в сети, чтобы скрипт отрабатывал именно на подгруженных ajax элементах:
Решено! JQuery обработчики, такие как hover(), click(), bind(), on() и т.д. обрабатывают элементы только при загрузке.
Чтобы они реагировали на подгруженный ajax’ом контент, есть несколько решений:
- Загрузить ajax’ом скрипт заново(не лучший вариант). Но работает.
- Использовать обработчик live(). Но с версии >= JQuery 1.9 его убрали и перенесли в обработчик on(), в котором объединили и bind(), и delegate().
- На мой взгляд, самый лучший. Для тега установить атрибут onClick, установить ему значение функции, например:
а в скрипте переделать обработчики в функцию.
Вместо:
Т.е. у тэга div при нажатии атрибут onClick вызывает эту функции. И тут без разницы, подгружен контент ajax’ом или нет.
Если хотите в функции использовать значение $(this), то задайте в атрибуте у функции onClick=»function_name(this);», а в скрипте в функции задайте событие для этого значения
Надеюсь, кому-то будет полезно 🙂
Почему такой вариант не рассматривается?
Я так пользуюсь давно. сам когда-то натыкался на это, но так же быстро решил. оказывается это прям ВОПРОС))
Для извращенцев, вот так ещё можно:
Спасибо, по всякому уже пробовал, это помогло!
Источник
не срабатывает Ajax запрос
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Почему не срабатывает Ajax запрос?
Добрый день! Не пойму почему не срабатыват запрос. 7
Так тоже страница перегружается
Добавлено через 9 минут
Вот, если я ставлю вместо , то не перегружается, но тогда PHP скрипт не срабатывает
ТАк, вроде отработал аякс, но теперь PHP не работает вообще и если меняю type на JSON, То вообще ничего не происходит. Ты бы не мог проверить у себя мой код? Может ты увидишь что не так?
Вчерашний день прожил без интернета, отвечаю только сегодня.
Итак, подытожим, Вы желаете чтобы пользователь вводил в поле адрес сайта, отправлял его и в ответ получал содержимое из meta content=»содержимое» . (Правильно понял?) Это содержимое нужно куда — то поместить. Я выбрал блок с
Код главной страницы (! в демостранице — вбил адрес форума по умолчанию, чтобы не вводить вручную при проверках, здесь оставил как было):
Доброго времени суток. Делаю сайт по нахождению оптимального пути по алгоритму Дейкстры.. При.
Не всегда срабатывает ajax метод
Здравствуйте, подскажите пожалуйста, почему не всегда срабатывает ajax запрос? Делаю универсальную.
Источник
Почему ajax не срабатывает?
На сколько я знаю ajax, он должен сразу срабатывать, т.е. без обновления странице, но почему то у меня такого не происходит.
Изменения происходят только при обновление странице, т.е. обработчик работает. Но ajax нет, почему?
- Вопрос задан более трёх лет назад
- 420 просмотров
без обновления странице, но почему то у меня такого не происходит
Как вы выполняете ajax запрос? В каком месте и когда вы выполняете ajax запрос?
Банально возможно плагин (jquery?) ещё не инициализированный, а вы уже пытаетесь кликать и отправлять запросы .
обработчик работает. Но ajax нет
Никита Полевой, Никита Полевой, Значение не меняется, только после обновления странице:(
Вот ajax запрос
В обработчике создавать объект? Да. я в этом также не шарю как и с этим ajax’ом. Объясните в пару слов как это сделать, пожалуйста
В обработчике создавать объект? Да. я в этом также не шарю как и с этим ajax’ом. Объясните в пару слов как это сделать, пожалуйста
Источник
Не работает форма отправки ajax
Есть сайт proteksstroy.ru на нем есть несколько форм , точнее форма, а другие просто ссылаются на ее id. Так вот эта самая форма не хочет отправляться со слайдера, после ввода данных происходит перезагрузка и ничего не отправляется. А вот по вызову данной формы через другие формы, данная форма почему-то работает корректно и все данные отправляются, хотя форма одна и та же, прошу помочь с данной проблемой.
А вот аякс перехватчик:
Очень прошу вас помочь, уже очень долго не могу понять в чем проблема.
3 ответа 3
У вас на странице целых 5 форм с #callbacks. Поэтому код, предложенный Vanya Avchyan у вас не работает, хотя он верный:
Слушатель события вешается только на первую из форм. Обратите внимание, что аттрибут id по стандартам HTML должен быть уникальным на странице, в этом вся его суть. Это уникальный, однозначный идентификатор элемента.
В вашем случае стоит или избавиться от лишних «клонов», или вешать событие не по id, а используя класс, например
Но у вас не только #callbacks формы содержат класс callback, поэтому его следует заменить каким-то другим, определяющим именно нужные формы.
А вот одинаковый id уберите в любом случае. Он вам точно не нужен. JS для этих элементов все равно не работает, а CSS (если он привязан к этому id) несложно перевести на классы.
Источник
Почему не срабатывает success в ajax запросе?
Встретился с проблемой, что не работает «success», сам ajax вроде работает, данные отправляются на обработчик.
javascript:
- Вопрос задан более трёх лет назад
- 11664 просмотра
@Norbyt попробуйте выполнить запрос (я заменил строками значения переменных)
Я намеренно убрал указание типа получаемого контента. Выполнили, посмотрели консоль, сделали вывод.
Если сработал success, добавляем dataType: ‘json’ и выполняем, смотрим консоль.
Пишем сюда и потом думаем, что и как.
@Norbyt вы точно делали то, что я написал? Проблему нужно искать, уменьшая проблемный код. Если вам требуется DOMContentLoaded, то это значит, что вы продолжаете тестировать посторонний проблемный код. Так можно долго ковыряться.
Ещё раз — создайте пустой документ и в нём выполните ровно то, что я просил.
ПыСы. $(document).ready() => $()
@Norbyt ничего вы не забыли. Уберите. Срочно.
Аргументом метода click (и всех методов для работы с событиями) может быть только функция, а не результат её работы. То есть срабатывает click, и только тогда запускается RunAjax.
Это значит, что ошибка осталась в коде.
ПыСы. И зачем вы называете свои ошибки позорными? Это — моя работа, а вы делаете её за меня:)) Шучу. Я их так тоже не называю.
Источник