在Ajax内容加载时初始化Visual Composer

时间:2017-01-17 22:28:17

标签: jquery html ajax visual-composer

下面的基本结构,有一个ajax脚本替换div内部内容并更新菜单,推送历史状态,淡入/淡出内容等。

内部内容包含基础网格行,wordpress编辑器的内容位于该容器内。

现在问题是......当使用任何需要javascript触发器的Visual Composer函数时,全宽度Span,滑块,动画在我的ajax函数触发内容替换时不会再次加载。

以下是我的代码的一部分,在ajax获取内容后加载。

// Update the content
$content.stop(true,true);
//$("[data-vc-grid-settings]").vcGrid();
$('#content').foundation();
$content.html(contentHtml).ajaxify().css('opacity',100).show(); /* you could fade in here if you'd like */

// Update the title
document.title = $data.find('.document-title:first').text();

我认为.vcGrid()是正确的init,但是得到了未定义的控制台错误。 我在哪里可以找到与重新初始化可视化作曲元素相关的文档?

<html>
<header>
Meta Content
</header>
<div off-canvus>
   <menu></menu>
   <div content>
      <div inner-content>

      </div>
   </div>
   <footer>
   </footer>
   <scripts>
</html>

2 个答案:

答案 0 :(得分:1)

添加一些自定义的javascript逻辑 之后加载了可视化编辑器网格,请执行以下操作:

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

详情请看这个问题=&gt; here

答案 1 :(得分:0)

在挖掘视觉作曲家的javascript后找到了我需要的数据,为窗口添加了一个调整大小的动作,触发视觉作曲家的网格正常工作。

$content.stop(true,true);
window.vc_js();
window.resize();
$('#content').foundation();
$content.html(contentHtml).ajaxify().css('opacity',100).show(); /* you could fade in here if you'd like */

// Update the title
document.title = $data.find('.document-title:first').text();
try {
    document.getElementsByTagName('title')[0].innerHTML = document.title.replace('<','&lt;').replace('>','&gt;').replace(' & ',' &amp; ');
}
catch ( Exception ) { }