Создаю меню для выбора подпунктов Код (CODE): <? if ($this->countModules('service') ) : ?> <div id="dd" class="wrapper-dropdown-1" tabindex="1"> <span>Выберите услугу</span> <jdoc:include type="modules" name="service" style="xhtml" /> <!--<ul class="dropdown"> <li><a href="/uslugi/nogtevoj-servis"><i class="fa fa-scissors"></i>Ногтевой сервис</a></li> <li><a href="#"><i class="fa fa-eraser"></i>Маникюр</a></li> <li><a href="#"><i class="fa fa-eraser"></i>Педикюр</a></li> </ul>--> </div> <? endif; ?> Если раскомментировать строчки, то выбор есть. Но даже если вставить ссылку или нет в li, то перехода никакого нет. Даже если внедряю ради этого модуль. Как мне переделать чтоб еще и выбор учитывался и переход был по ссылке? Применяю для этого Код (CODE): /* -------- Для выпадающего списка --------- */ function DropDown(el) { this.dd = el; this.placeholder = this.dd.children('span'); this.opts = this.dd.find('ul.dropdown > li'); this.val = ''; this.index = -1; this.initEvents(); } DropDown.prototype = { initEvents : function() { var obj = this; obj.dd.on('click', function(event){ $(this).toggleClass('active'); return false; }); obj.opts.on('click',function(){ var opt = $(this); obj.val = opt.text(); obj.index = opt.index(); obj.placeholder.text(obj.val); }); }, getValue : function() { return this.val; }, getIndex : function() { return this.index; } } $(function() { var dd = new DropDown( $('#dd') ); var dd = new DropDown( $('#ds') ); $(document).click(function() { // all dropdowns $('.wrapper-dropdown-1').removeClass('active'); }); }); /*------------------------------*/
Применяй правильные теги для каждого формата кода. Твой код в теме вырви глаз . Подпункты выводятся стандартным модулем меню ? А при отключенном яваскрипте переход по сылке ?
Прежде чем сразу всех "обсирать", то хотя бы предложите нужный вариант Мне нужно для https://prnt.sc/khpjfe В самом модуле я выбираю нужный пункт https://prnt.sc/khpk0n И в дополн. параметрах модуля устанавливаю необходимый класс dropdown у меню. Сейчас выборка идет нормально, показывается. А вот клик не срабатывает. Что мог я нашёл. И оно мне нравиться. Есть лучшее решение, так покажите
Легко. Надеюсь разницу увидишь . Код (html): <? if ($this->countModules('service') ) : ?> <div id="dd" class="wrapper-dropdown-1" tabindex="1"> <span>Выберите услугу</span> <jdoc:include type="modules" name="service" style="xhtml" /> <!--<ul class="dropdown"> <li><a href="/uslugi/nogtevoj-servis"><i class="fa fa-scissors"></i>Ногтевой сервис</a></li> <li><a href="#"><i class="fa fa-eraser"></i>Маникюр</a></li> <li><a href="#"><i class="fa fa-eraser"></i>Педикюр</a></li> </ul>--> </div> <? endif; ?> --- добавлено: Aug 12, 2018, первое сообщение размещено: Aug 12, 2018 --- Spoiler: яваскрипт Код (javascript): /* -------- Для выпадающего списка --------- */ function DropDown(el) { this.dd = el; this.placeholder = this.dd.children('span'); this.opts = this.dd.find('ul.dropdown > li'); this.val = ''; this.index = -1; this.initEvents(); } DropDown.prototype = { initEvents : function() { var obj = this; obj.dd.on('click', function(event){ $(this).toggleClass('active'); return false; }); obj.opts.on('click',function(){ var opt = $(this); obj.val = opt.text(); obj.index = opt.index(); obj.placeholder.text(obj.val); }); }, getValue : function() { return this.val; }, getIndex : function() { return this.index; } } $(function() { var dd = new DropDown( $('#dd') ); var dd = new DropDown( $('#ds') ); $(document).click(function() { // all dropdowns $('.wrapper-dropdown-1').removeClass('active'); }); }); /*------------------------------*/
В консоли работает. Внедряй Код (javascript): jQuery('.dropdown li a').on('click', function() { link_vpered = jQuery(this).attr('href'); location = link_vpered ; });
Уже лучше. Если вписать что Вы прислали Код (CODE): $(document).ready(function(){ $('.dropdown li a').on('click', function() { link_vpered = $(this).attr('href'); location = link_vpered ; }); }); То у location выдает сбоку в менеджере кода "Только для чтения (read only)" Ну это не ошибка в общем. Но вот выбранная услуга перестала показываться. А как сделать так, чтобы и выбранная услуга показывалась и переход был?
Непонятно. Так я выбираю к примеру "Ногтевой сервис". Он в начале появляется, а затем исчезает, но переход теперь на страницу (с заголовком) есть. Как сделать чтоб этот заголовок не исчезал в выбранном, а оставался?
Твой яваскрипт function DropDown(el) только меняет заголовок в указанном элементе. А мой яваскрипт перенаправляет по ссылке в элементе .