"активировать" jQuery для манипулирования HTML - PullRequest
0 голосов
/ 25 мая 2020

Я загружаю html на существующий веб-сайт через ajax и jquery. Загруженный HTML, включенный на страницу после запросов ajax, содержит раскрывающееся меню, которое работает с jQuery. Но при включении HTML в меню он не работает, если загружается через Ajax. Как я могу повторно активировать для него jQuery?

function checkLoggedIn(callback) {
    var user_menu_url = Routing.generate('api_user_menu');
    var user_menu_target = $('.user-menu .header-notifications-trigger').parents('.right-side');

    $.ajax({
        url: user_menu_url,
        beforeSend: function (xhr) {
            user_menu_target.html('<img src="/dist/img/ajax-loader.gif">');
        },
        success: function (data, status, xhr) {
            if (data.success === true) {
                console.log(data);
                user_menu_target.html('');
                user_menu_target.append(data.html);

                callback(data);
            }
        }
    });
}

1 Ответ

0 голосов
/ 25 мая 2020

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

$('body').on('change', 'select', function(e) {
   // handle the event
});

$.ajax({
      url: '/your-url-here',
      method: 'get',
      dataType: "json",
      success: function (response) {
           $('body').append(response.html); // assuming you get markdown from response
      }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...