Всем привет!
Есть код, отвечающий за работу меню на мобильном
В меню есть 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();
});
}