Не работает скрипт показать больше материала, в чем проблема? Может кто поможет разобраться, может что-то нужно добавить или же наоборот удалить, заранее спасибо.
/**
* Полностью поддерживаются модули "Блог", "Каталог статей" и "Фотоальбомы".
* В остальных модулях скрипт протестирован не был, работоспособность не гарантируется.
*/
/**
* Перед использованием скрипта желательно отключить "Ajax для переключателей страниц".
* ПУ => Общие настройки => "Отключить Ajax для переключателей страниц" - поставить галочку.
*/
var ajaxLoad = {
/**
* Функция инициализации скрипта: создает кнопку "Подгрузить ещё", если обнаружена страница для подгрузки
* @param {object} par
*/
init: function(par, nextPage) {
if (par) {
// Устанавливаем начальные параметры (module & pageselector)
this.params = par;
/**
* Находим переключатели на странице
* и записываем их селекторы в ajaxLoad.selectors (String)
*/
var selectorsArray = [];
$('.content').find('*[id^=pagesBlock], *[class^=pagesBlockuz]').each(function () {
selectorsArray.push(($(this).attr('id') ? '#' : '.') + ($(this).attr('id') || $(this).attr('class')));
});
this.selectors = selectorsArray.join(', ');
}
var page = nextPage || $('.swchItem span:contains("»")').parent().attr('href') || $('.swchItemA1').next('.swchItem1').attr('href') || -1;
if (~page){
$('#content').append('<div class="ajaxLoadButton" onclick="ajaxLoad.load(\'' + page + '\');">Подгрузить ещё</div>');
if (!this.params.pageselector) {
$('head').append('<style>' + this.selectors + ' {display: none;}</style>');
} else if (this.params.module == 'blog') {
$('head').append('<style>#pagesBlock1 {margin-top: 5px;}</style>');
}
}
},
/**
* Функция подгрузки следующей страницы
* @param {string} page
*/
load: function(page) {
var self = this;
$('.ajaxLoadButton').text('Идёт загрузка...');
$.ajax({
url: page
}).done(function (r){
var m = self.params.module;
var animName = (m != 'photo') ? 'fadeInUpAnim' : 'zoomInAnim';
var whatReplace = (m != 'photo') ? (/(id="entryID[0-9]+")/g) : (/uphoto/g);
var withReplace = (m != 'photo') ? ('$1 class="' + animName + '"') : ('uphoto ' + animName);
var content = $('#allEntries', r).html().replace(whatReplace, withReplace);
// Убираем переключатели в #allEntries, т.к. в любом случае подгрузится еще одна копия
$('#allEntries').find(self.selectors).remove();
// Убираем кнопку подгрузки
$('.ajaxLoadButton').remove();
// Если показ переключателя(-ей) отключен, убираем его(их)
if (!self.params.pageselector) {
$(self.selectors).remove();
} else {
// В обратном случае обновляем текущие страницы на переключателе(-ях)
var selectorsHtml = [];
$('.content', r).find(self.selectors).not($('#allEntries', r).find(self.selectors)).each(function () {
selectorsHtml.push($(this).html());
});
$(self.selectors).each(function (i) {
$(this).html(selectorsHtml[i]);
});
}
// Показываем подгруженные материалы
$('#allEntries').append(content);
// В модуле "Фотографии" пересчитываем размер изображений
if (self.params.module == 'photo') {
window.uEntriesList.root = $('ul[id="uEntriesList"]');
window.uEntriesList.colWidth();
}
// Отображаем адрес подгруженной страницы в адресной строке
history.pushState({}, '', page);
// Пробуем показать кнопку
ajaxLoad.init(null, ($('.swchItem span:contains("»")', r).parent().attr('href') || $('.swchItemA1', r).next('.swchItem1').attr('href')));
});
}
}