ajax调用后重新加载可视化作曲家网格

时间:2017-06-08 13:23:26

标签: ajax visual-composer

我目前正在wordpress主题中实现barba.js。除了VisualComposer网格之外,我已经设法使大多数javascript函数在页面更改后正常工作。

阅读this线程我设法让Visual composer基本功能工作,除了网格window.vc_js();

如果我添加window.resize();,我会收到window.resize is not a function错误。

在很多页面中,window.vc_js() - window.vc_js is not a function

也会出现同样的错误

我如何初始化vc_grid? 当Visual composer实际处于活动状态时,为什么会出现这些错误?

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

TL;博士

将您的自定义JavaScript代码放在此处:

$(window).bind( 'grid:items:added', function(){ 
  // add some logic here
});

如果你需要在 之后加载Visual Composer网格,那么就这样做(我正在从某个网站粘贴我的代码):

// catch VISUAL COMPOSER AFTER GRID ITEMS ARE LOADED .. hook and update date strings,, ONCE!
$(window).bind( 'grid:items:added', function(){
    if ( ! $( 'body' ).attr('masonicaDone' ) == "1" ){
        $('.enddate, .startdate').each( function(ix, el){
            var tmm = sDate( TIME( $(el).text().trim() ), lang ) + ' ∙ ' + sTime( TIME( $(el).text().trim() ), lang  );
            $(el).text( tmm );
        });
        $( 'body' ).attr('masonicaDone', 1);
    }
});

主要是bind'grid:items:added'事件,在ajax数据传输之后运行,在我的示例中我将日期格式化为本地格式(而不是本机php)日期格式,WP)

另外,非常重要的是添加一些标志(我在身体上的attr'ing)不要再做一次(我最终将两次形成日期字符串并且有错误)但只是第一次(在ajax之后)。请注意,同样的事件在点击过滤器按钮(大部分时间的投资组合类别)时会被触发,并且谁知道可能还有一些转换..