Ответы пользователя по тегу WordPress
  • Как подгружать контента через load, чтобы работали скрипты на элементах?

    @Dark19 Автор вопроса
    В общем пришлось подключать нужные скрипты для плагинов при загрузке анонимной функцией и все заработало:
    $(document).on('click', 'a',function(e){
                if($(this).is('a:not([data-fancybox])') && $(this).is('a[href^="'+site_url+'"]')){
                    //e.preventDefault();
                    locationPrev = window.location.href;
                    var url = $(this).attr('href'),
                        toLoad = url+' #wrapper',
                        content = $('#ajax-content'),
                        opacityContent = $('#content');
                    opacityContent.animate({opacity: 0.1},loadContent());
                    function loadContent(){
                        setTimeout(function (){
                            content.load(toLoad,'',function(r, s, x){
                                $.getScript(home_url+"/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js");
                                $.getScript(home_url+"/wp-content/plugins/contact-form-7/includes/js/scripts.js");
                                $.getScript(template_dir+"/js/map.js");
                                $('html,body').animate({scrollTop: 0}, 500);
                                opacityContent.animate({opacity: 1},500);
                            });
                        },300);
                    }
    
                    // А вот так просто меняется ссылка
                    if(url != window.location){
                        window.history.pushState(null, null, url);
                    }
    
                    return false;
                }
            });

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