带有视觉作曲器的wordpress jquery .load(url +'#grabMe')

时间:2018-11-15 06:04:03

标签: jquery wordpress visual-composer

我正在使用jquery.load(url +'#grabMe');将使用可视化编辑器生成的帖子内容加载到页面上的div中。

但是,一旦将帖子加载到正确的块中,则由于js已从内容加载中剥离出来,帖子滑块,视频,砖石结构,常见问题滑块都无法使用...基本上,我要问的是,重新触发可视作曲者页面设置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 个答案:

答案 0 :(得分:0)

好吧,它有点笨拙,但是我找到了解决方案。

Visual Composer使用一个名为vcv的javascript对象

您可以通过调用触发vcv准备就绪

vcv.trigger('ready');

但是...当我通过$ .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');
    }
    
    
        
}