Почему второй раз не вызывается файл php? Ajax
Ajax код:
При нажатии первый раз на .menu__skins-sell вызывается файл ajax_profile.php, но на второй раз уже не срабатывает хотя там тоже есть .menu__skins-sell и импортирован ajax.
Код первой страницы:
Код страницы которая вызывается:
JS-события не вешаются на элементы, которые появляются на странице после её загрузки.
Фактически в момент, когда браузер парсит событие .click() или .on("click", ...) – он вешает на каждый элемент, подходящий под параметры, свойство, что ему нужно будет сделать, если на него кликнут. На новые элементы, появившиеся уже после парсинга .click() или .on() браузер не вешает такие свойства – они остаются null.
То есть события останутся прикреплены к элементам, которые и так уже были на странице, когда она отобразилась в браузере, но на загруженные с помощью AJAX элементы события действовать не будут.
Вам нужно либо заново инициализировать события после того, как вы загрузили элементы через AJAX:
$(".any-element").click(functionName(...));
function functionName(...) {
$.ajax({
// параметры AJAX-запроса
success: function (result) {
// выводим контент на страницу
$(".any-element").click(functionName()); // заново вешаем события на появившиеся элементы
}
});
} Либо использовать конструкцию, которая вешает событие не на конкретные элементы, а на document:
$(document).on("click", ".any-element", function() {...}); В этом варианте событие on-click вешается на document, но вызывается только если дочерним элементом документа (таргетом) является элемент с классом class="any-element".
Конкретно в вашем случае достаточно заменить первую строку приведённой JS-функции, в которой выполняется AJAX-запрос (первый скрин из вопроса) на:
$(document).on("click", ".menu__skins-sell", function () { Немного не понимаю где вы в вашем примере заново инициализируете событие? Если вы просто проверяете нажат ли ".any-element" что и сделано к меня
*у меня
Потому что ты тупой ламер
У чертей всегда так
Я бы с твоим кпд лучше бы молчал..