Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2017, 06:32
Интересующийся
Отправить личное сообщение для garfild304 Посмотреть профиль Найти все сообщения от garfild304
 
Регистрация: 14.01.2017
Сообщений: 10

Cannot read property 'split' of undefined
В браузере выдаёт ошибку:

Uncaught TypeError: Cannot read property 'split' of undefined
at HTMLDocument.<anonymous> (ajax_infinite_scroll.js:104)
at j (jquery-2.1.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-2.1.1.min.js:2)
at Function.ready (jquery-2.1.1.min.js:2)
at HTMLDocument.I (jquery-2.1.1.min.js:2)

104 строка эта>> index = $.grep(window.location.href.split('&'),function(e) {return e.match("^page");})[0].split('=')[1];


Не могу понять в чём ошибка...помогите исправить?!



var page = window.location.href;
var pageFirst = "";
var index = 0;
var indexFirst = 0;
var cols = 0;
var grid = true;
function getNextPage() {
	w = parseFloat($(container).css('width'));
	container.append('<div id="ajaxblock" style="width:'+w+'px;"><span></span></div>');
	if(index == -1) {
		$('#ajaxblock').remove();
		return false;
	}
	if(index > 1) {
		index = parseInt(index) + 1;
		page = pageFirst + "&page=" + index;
	} else {
		if(indexFirst == 1) {
			pageFirst = page;
		}
		indexFirst = parseInt(indexFirst) + 1;
		page = pageFirst + "&page=" + indexFirst;
	}
	if ($('.product-list').length>0) {
		grid = false;
	} else {
		grid = true;
	}
	$.ajax({
		url: page,
		type: "GET",
		data: '',
		beforeSend: function() {
			$('#product-preloader').addClass('loading');
		},
		success:function (data) {
			var data_html = $(data).find('.product-list:last-child').parent().clone();
			$('#ajaxblock').remove();
			if ($(data)) {
				if (grid == false) {
					data_html.find('.product-layout').attr('class', 'product-layout product-list col-xs-12');
				} else {
					if (cols == 2) {
						data_html.find('.product-layout').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12');
					} else if (cols == 1) {
						data_html.find('.product-layout').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12');
					} else {
						data_html.find('.product-layout').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12');
					}
				}
				container.append(data_html.html());
			} else {
				index = -1;
			}
			$('.lazy img').not('.lazy-loaded').unveil(0, function () {
				$(this).load(function () {
					$(this).parent().addClass("lazy-loaded");
				});
			});
			var o1 = $('.date'),
			o2 = $('.datetime'),
			o3 = $('.time');
			if (o1.length) {
				o1.datetimepicker({
					pickTime: false
				});
			}
			if (o2.length) {
				$('.datetime').datetimepicker({
					pickDate: true,
					pickTime: true
				});
			}
			if (o3.length) {
				$('.time').datetimepicker({
					pickDate: false
				});
			}
			$('#product-preloader').removeClass('loading');
		},
		error: function(){
			$('#product-preloader').removeClass('loading');
		}
	});
}

function getContainer() {
	if ($('.product-list').length>0) {
		container = $('.product-list').parent();
	} else  if ($('.product-grid').length>0) {
		container = $('.product-grid').parent();
	} else {
		container = $('.product-layout').parent();
	}
 return container;
}

$(document).ready(function(){
	container = getContainer();
	cols = $('#column-right, #column-left').length;
	if ($(container).length>0) {
		if(page.indexOf("page") >= 0 && $('.pagination > li:first-child a').attr('href')){
			pageFirst = $('.pagination > li:first-child a').attr('href');
			index = $.grep(window.location.href.split('&'),function(e){return e.match("^page");})[0].split('=')[1];
		} else {
			indexFirst = 1;
		}
		$('.load-more').click(function(e){
			e.preventDefault();
			getNextPage();
		});
	}

});
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2017, 07:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Зачем $.grep(window.location.href.split('&'),function(e) {return e.match("^page");})[0].split('=')[1];, если нужно найти только значение параметра page?
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2017, 18:07
Интересующийся
Отправить личное сообщение для garfild304 Посмотреть профиль Найти все сообщения от garfild304
 
Регистрация: 14.01.2017
Сообщений: 10

Генерирует ссылку
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2017, 18:08
Интересующийся
Отправить личное сообщение для garfild304 Посмотреть профиль Найти все сообщения от garfild304
 
Регистрация: 14.01.2017
Сообщений: 10

Есть лучше вариант как это сделать?
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2017, 18:13
Интересующийся
Отправить личное сообщение для garfild304 Посмотреть профиль Найти все сообщения от garfild304
 
Регистрация: 14.01.2017
Сообщений: 10

index = $.grep(window.location.href.split('&'),function(e) {return e.match("^page");})[0].split('=')[1];


Раскрывается (показать ещё товары). Если убрать e.match("^page"); Страница нормально работает но перестаёт работать "Показать ещё"
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2017, 18:21
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

garfild304,

Извлечение page из URL

Последний раз редактировалось Dilettante_Pro, 10.04.2017 в 18:38.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cannot read property 'safari' of undefined vladik_vodopadik Javascript под браузер 1 14.12.2015 17:35
Cannot read property 'query' of undefined balalay12 Angular.js 1 30.10.2015 19:27
TypeError: Cannot read property 'then' of undefined mandry Angular.js 1 27.06.2015 01:05
Помогите плс решитUncaught TypeError: Cannot read property 'attributes' of undefined Wahtel Общие вопросы Javascript 3 04.03.2015 16:30
Cannot read property 'items' of undefined khusamov ExtJS 0 11.05.2012 04:33