Javascript.RU

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

AJAX загрузка блока при загрузке страницы
Всем привет!

Есть код, отвечающий за работу меню на мобильном
В меню есть level2, который подгружается после клика по level1. Из-за чего нужно делать 2 клика: 1 чтобы подгрузить ul="level2"; и 2 чтобы отобразить его пользователю (используется Swipe plugin)
Чтобы избежать лишнего клика, я хочу level2 загружать вместе со страницей, либо при нажатии на кнопку Меню (в этот момент выезжает меню с level1). Постарался подробно описать.. В JS не силен, делал методом тыка и гугла, успехом не увенчалось. Пробовал с помощью .ready результата 0..
Сайт otlg.ru
Ниже код.. Весь код файла тут
// Left menu
	if(Modernizr.touch){
		var leftcatalog = new Swiper('.menublock', {
			prevButton: '.menublock .backlink a',
			spaceBetween: 0,
			slidesPerView: 1,
			// disable touch slide
				simulateTouch: false,
				shortSwipes: false,
				longSwipes: false,
				followFinger: false,
		});

		// LEVEL1 BRANCH

		$(document).on('click','.leftside .level1 .branch',function(e){
			// GET LEVEL2 CAPTION
			var caption = $(this).text();


			leftcatalog.slideTo(1);


			//...
			// AJAX QUERY ?
			mobileMenu = $('.menublock .level1');
			id = $(this).data('id');
			lvl = $(this).data('lvl');
			if (!id) {console.log('error'); return false}
			$(this).parents('.level'+lvl).nextAll().remove();
			$.ajax({
				url: 'index.php?route=api/menu',
				type: 'get',
				data: 'id=' + id,
				dataType: 'json',
				beforeSend: function() {
					mobileMenu.parent().append('<ul class="level'+(++lvl)+' swiper-slide"><li class="backlink"><a href="#" data-gotostep="'+(--lvl)+'">Назад</a></li><li class="title"><a></a></li></ul>');
				},
				success: function(json) {
					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						column = mobileMenu.parent().children().last();
						txt = '';
						$.each(json, function(index, value){
							txt += '<li><a href="'+value['link']+'" data-id='+value['id']+' data-lvl="'+(++lvl)+'">'+value['name']+'</a></li>'
						});
						column.html(column.html() + txt);
					}, 100);
					$('.level'+(++lvl)+' .title').text(caption);
					setTimeout(function () {
						leftcatalog.update();
						leftcatalog.attachEvents();
					}, 100);
					leftcatalog.slideNext();
				},
				error: function(xhr, ajaxOptions, thrownError) {
						alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
				}
			});
			//...

			e.preventDefault();
		});

		// LEVEL2 BRANCH

		$(document).on('click','.leftside .level2 .branch',function(e){
			leftcatalog.slideTo(2);



			//...
			// AJAX QUERY ?
			//...

			e.preventDefault();
		});
	}

Последний раз редактировалось zahar_92, 08.05.2017 в 10:54.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить гиф-анимацию при загрузке страницы Quark_ Javascript под браузер 0 31.08.2016 22:48
Задать координаты положения курсора, при загрузке страницы. Blondinka Events/DOM/Window 1 20.02.2016 04:22
Прокрутка окна при загрузке страницы dexteron Общие вопросы Javascript 5 09.04.2015 19:08
Обрезать часть слов у всех <h3> при загрузке страницы swess Общие вопросы Javascript 9 14.01.2012 06:44
При загрузке страницы не отображается картинка pimax1978 Opera, Safari и др. 10 06.01.2012 23:09