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');
}
}