Как я могу открыть подменю щелчком мыши, и я хочу, чтобы они открывались специально?

#javascript #html #jquery #css #submenu

Вопрос:

Я использую этот код: я помещаю html,css,jquery, когда я нажимаю на li, я хочу открыть его подменю, но открываются все подменю, и я хочу открыть подменю специально для каждого элемента. Кто-нибудь может мне с этим помочь?

 $(document).ready(function () {  $(".menuitem li").click(function(){  $('.submenu').slideToggle();  });  }); 
 ul.submenu {  position: relative; } .menuitem li{  position: relative; } .submenu li{  position: relative; } 
 lt;div class="mobileMenu"gt;  lt;ul class="menuitem"gt;  lt;li gt;lt;a href=" " gt;آموزش lt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;li gt;lt;a href=" " gt;پژوهشlt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;li gt;lt;a href=" " gt;معاونت هاlt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt; lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; 

Ответ №1:

В своем коде jQuery вы не указали, чтобы открывать одно подменю. Поэтому он откроет все подменю.

 $(function() {  $('.menuitem li').click(function(e) {  e.stopPropagation();  var $el = $('ul',this);  $('.menuitem gt; li gt; ul').not($el).slideUp();  $el.stop(true, true).slideToggle(400);  }); }); 
 ul.submenu {  position: relative; } .menuitem li {  position: relative; } .submenu li {  position: relative; } 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt;  lt;div class="mobileMenu"gt;  lt;ul class="menuitem"gt;  lt;ligt;  lt;a href=" "gt;آموزش lt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;ligt;  lt;a href=" "gt;پژوهشlt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;ligt;  lt;a href=" "gt;معاونت هاlt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;/ulgt; lt;/divgt; 

Комментарии:

1. спасибо, но это не работает

2. @BaharSlms вы хотите нажать открыть его подменю, верно? и вот фрагмент кода, из которого мы ясно видим, что при нажатии li открывается только подменю, а не все меню.

Ответ №2:

по щелчку мыши вы должны получить дочерний элемент меню, а затем скользнуть по нему. Замените свой код jquery следующим

 $(".menuitem li").click(function(){  $(this).children().find('li').slideToggle();  });  
 lt;!DOCTYPE htmlgt; lt;htmlgt; lt;headgt; lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"gt;lt;/scriptgt; lt;scriptgt;  $(document).ready(function () {  $(".menuitem li").click(function(){  $(this).children().find('li').slideToggle();  });  }); lt;/scriptgt; lt;stylegt; ul.submenu {  position: relative; } .menuitem li{  position: relative; } .submenu li{  position: relative; } lt;/stylegt; lt;/headgt; lt;bodygt;   lt;div class="mobileMenu"gt;  lt;ul class="menuitem"gt;  lt;li gt;lt;a href=" " gt;آموزش lt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;li gt;lt;a href=" " gt;پژوهشlt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;  lt;li gt;lt;a href=" " gt;معاونت هاlt;/agt;  lt;i class="fa fa-caret-down" aria-hidden="true"gt;lt;/igt;  lt;ul class="submenu"gt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;ligt;lt;a href=" " target="_blank"gt;زیر منوlt;/agt;lt;/ligt;  lt;/ulgt;  lt;/ligt;   lt;/bodygt; lt;/htmlgt; 

Комментарии:

1. да, спасибо, я пытался использовать его, но он не работает

2. с какой проблемой вы столкнулись, когда я проверяю, что она работает идеально.

3. когда я добавляю этот код в свой jQuery, подменю вообще не открываются

4. вы должны заменить свой $(«.menuitem li»).нажмите(функция(){ $(‘.подменю’).слайд-шоу(); }); этот код на $( «. menuitem li»).нажмите(функция(){ $(это).дети().найдите(‘li’). slideToggle(); }); тогда это сработает, вы должны что-то сделать не так.