WordPress JQuery .load(URL + ' #grabMe') с визуальным композитором

Я загружаю содержимое постов, которое генерируется с помощью визуального композитора, в мой div на странице с помощью jquery.load(url + ' #grabMe');

однако, как только сообщение загружено в правильный блок, ползунки сообщений, видео, масонство, ползунки faq все не работают, поскольку js был удален из загрузки контента... по сути, я спрашиваю, есть ли способ повторно -trigger Визуальные композиторы страница настройки JS код?

мой код JS выглядит следующим образом

var $mainContent = $("#supportResultSet"),
        url = ''; 

    $('a.ajaxMe').on("click", function(e) {
        e.preventDefault();
        location.hash = this.pathname;

        $('a.ajaxMe').removeClass('activeMod');
        $(this).addClass('activeMod');
    }); 



    $(window).bind('hashchange', function(){
        url = window.location.hash.substring(1); 

        if (!url) {
            return;
        } 

        url = url + " #grabMe"; 

        $mainContent.animate({opacity: "0.4"}).html('Loading...').load(url, function() {
            page_setup();

            addAjaxSupportTaxonomyLoad();

            $mainContent.animate({opacity: "1"});

            $('html,body').animate({
              scrollTop: $mainContent.offset().top
            }, 1000);


        });
    });

    $(window).trigger('hashchange');

Любая помощь будет оценена

1 ответ

ОК, это немного странно, но я нашел решение.

Visual Composer работает с объектом JavaScript, называемым VCV

вы можете запустить vcv с вызовом

vcv.trigger('готов');

ОДНАКО... так как я загружал содержимое публикации через $.load(url + " #grabMe"), мы также не загружаем соответствующие / необходимые файлы JS/CSS для настройки содержимого из VC

для борьбы с этим я загрузил весь пост и удалил заголовок, нижний колонтитул и боковую панель, добавил содержимое (с требуемым js/css) и затем вызвал vcv.trigger('ready');

см. ниже для JS

jQuery(document).ready(function($) {
    addAjaxSupportResultSetLoad();     
    addAjaxSupportTaxonomyLoad();     
});

function addAjaxSupportResultSetLoad(){
    var $mainContent = $("#supportResultSet"),
            url = ''; 
    
        $('a.ajaxMe').on("click", function(e) {
            e.preventDefault();
            location.hash = this.pathname;
            
            $('a.ajaxMe').removeClass('activeMod');
            $(this).addClass('activeMod');
        }); 
        


        $(window).bind('hashchange', function(){
            url = window.location.hash.substring(1); 

            if (!url) {
                return;
            } 

            url = url + " #grabMe"; 

            $mainContent.animate({opacity: "0.4"}).html('Loading...').load(url, function() {
                page_setup();
               
                addAjaxSupportTaxonomyLoad();
                
                $mainContent.animate({opacity: "1"});
                
                $('html,body').animate({
                  scrollTop: $mainContent.offset().top
                }, 1000);
                
               
            });
        });

        $(window).trigger('hashchange');
}


function addAjaxSupportTaxonomyLoad(){
    
    if($('.loadTaxonomy').length > 0 ){
        $('.loadTaxonomy').click(function(e){
            e.preventDefault();

            termID = $(this).attr('data-ref-id');
            $('#termToggleBlock_'+termID).slideToggle();
        });
    }
    
    if($('.loadPost').length > 0 ){
        
        $('#taxonomyBlock').scrollbar();
         
        $('.loadPost').click(function(e){
            e.preventDefault();
            
            termID = $(this).attr('data-ref-term-id');
            postID = $(this).attr('data-ref-post-id');
            
            loadedTaxonomy = $('#taxonomyBlock').attr('data-ref-loaded-taxonomy');
 
            if(loadedTaxonomy !== termID){
                var $taxonomyBlock = $("#taxonomyBlock"),
                url2 = $(this).attr('data-href-term'); 

                if (!url2) {
                    return;
                } 

                url2 = url2+ "?stripMe=1" + " #bodyBlock"; 

                $taxonomyBlock.animate({opacity: "0.4"}).html('Loading...');
                
                $.get(url2, function(data) {                     
                     theResult = $("<div/>").append( $('head', data).remove().end() ).html();
                     theResult = $("<div/>").append( $('header', theResult).remove().end() ).html();
                     theResult = $("<div/>").append( $('footer', theResult).remove().end() ).html();
                     theResult = $("<div/>").append( $('#pageTitle', theResult).remove().end() ).html();
                     $taxonomyBlock.html(theResult);
                     $('#taxonomyBlock').attr('data-ref-loaded-taxonomy', termID);
                     page_setup();
                     vcv.trigger('ready');
                     $taxonomyBlock.animate({opacity: "1"});
               });
               
               
               $('html,body').animate({
                  scrollTop: $taxonomyBlock.offset().top
                }, 1000);

            }else{
                var $termBlock = $("#taxonomyPost_"+postID);
                $('html,body').animate({
                  scrollTop: $termBlock.offset().top
                }, 1000);
            }
            

        });
        
        $('.loadPost:first').trigger('click');
    }
    
    
        
}
 

Другие вопросы по тегам