Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - Problema menù stile accordion attraverso elenco
Forum - Javascript - Problema menù stile accordion attraverso elenco

Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 19:47
Lunedì, 27/07/2015
Salve a tutti...si.. appena dopo la presentazione, dato che sto lavorando ad un progetto, mi sono trovato subito davanti ad un problema che magari per molti di voi puo' risultare anche banale :-| . Allora io avrei una serie di elenchi concatenati come di seguito:
Codice html
Codice sorgente - presumibilmente Javascript

  1. <div class="navbar-mobile">
  2.                 <ul class="nav">
  3.                 <div class="mobile-search">
  4.                           <form action="#" id="search_box" role="form">
  5.                                 <div class="wrapper">
  6.                                         <input type="search" id="search" name="search" placeholder="Cerca qui" autocomplete="off" required="true" />
  7.                                         <button type="submit" class="search_btn"><span class="fa fa-search"></span></button>
  8.                                 </div>
  9.                         </form>
  10.                 <div class="return-back"><button class="button"><i class="fa fa-undo fa-2x"></i></button></div>
  11.                 </div>
  12.                 <li class="mobile-dropdown">
  13.         <i class="fa fa-bars fa-2x"></i>
  14.                         <div class="mobile-menu">  
  15.                                 <div class="menu-wrapper">
  16.                                         <ul class="mobile-nav">
  17.                                                 <li><i class="fa fa-home"></i> <a href="/myProfile">Home</a></li>
  18.                 <li class="dropdown">
  19.                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Add Profile<em>10</em>
  20.                         <span class="fa fa-chevron-down"></span></a>
  21.                         <ul class="dropdown-menu">
  22.                                 <li href="/twitter/oauth"><a>Twitter</a></li>
  23.                                 <li href="/facebook/oauth"><a>Facebook</a></li>
  24.                                 <li href="/googleplus/oauth"><a>Google Plus</a></li>
  25.                                 <li href="/instagram/oauth"><a>Instagram</a></li>
  26.                         </ul>
  27.               </li>
  28.  
  29.                 <li class="dropdown">
  30.                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Create<span class="fa fa-chevron-down"></span></a>
  31.                         <ul class="dropdown-menu">
  32.                                 <li><a href="/createStream">Create Stream</a></li>
  33.                                 <li><a href="/createAlbum">Create Album</a></li>
  34.                                 <li><a href="/createGroup">Create Group</a></li>
  35.                         </ul>
  36.                 </li>
  37.                 <li class="dropdown">
  38.                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">View<span class="fa fa-chevron-down"></span></a>
  39.                         <ul class="dropdown-menu">
  40.                                 <li><a href="/viewStreams">View Streams</a></li>
  41.                                 <li><a href="/viewAlbums">View Albums</a></li>
  42.                                 <li><a href="/viewGroups">View Groups</a></li>
  43.                         </ul>
  44.                 </li>
  45.                 <li class="item"><a href="/schedule">Schedule</a></li>
  46.                                         </ul>
  47.                                 </div>
  48.                         </div>
  49.                 </li>
  50.                 <li class="search"><a class="fa fa-search fa-2x"></a></li>
  51.                 <li class="admin mobile-dropdown">
  52.                 <a class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user fa-2x"></i></a></li>
  53.                 </ul>
  54.         </div>


vorrei procedere in modo tale che qualora l'user andasse a cliccare su una voce in cui abbia i sottomenù (in questo caso <li class="dropdown">) si aprissero con effetto slide chiudendo però gli altri "menù". Io ho fatto questo al momento:
Codice Javascript
Codice sorgente - presumibilmente Plain Text

  1. $('.mobile-nav > li.dropdown').on('click', function(event){
  2.      $('.dropdown-menu > ul').next().slideToggle();
  3. });


L'evento è correttamente intercettato ma i sottomenù non fanno quello che dovrebbero.... HELP!! :hail: :hail:

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:59
Lunedì, 27/07/2015
sarebbe possibile avere una pagina di esempio online? senza indentatura corretta non si riesce a capire molto.

PM Quote
Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 20:49
Lunedì, 27/07/2015
Testo quotato

Postato originariamente da Roby94:

sarebbe possibile avere una pagina di esempio online? senza indentatura corretta non si riesce a capire molto.


@Roby94 hai effettivamente ragione! Mi scuso per non averci pensato da me. Metterlo online? Sinceramente è una piccola parte di un grosso progetto quindi se è possible evitarlo sarebbe la miglior cosa (ma se fosse necessario potrei anche farlo :rofl: ).
Provo a indentarti il codice e metterti uno screen di ciò che viene fuori, auspicando cosi si capisca :hail:
Codice sorgente - presumibilmente Javascript

  1. <div class="navbar-mobile hidden-desktop">
  2.             <ul class="nav">
  3.                 <div class="mobile-search">
  4.                     <form action="#" id="search_box" role="form">
  5.                         <div class="wrapper">
  6.                             <input type="search" id="search" name="search" class="awesomplete" id="spotlight" placeholder="Cerca qui" autocomplete="off" required="true" data-list="Ada, Ara, Java, JavaScript, Brainfuck, LOLCODE, Node.js, Ruby on Rails" />
  7.                             <button type="submit" class="search_btn"><span class="fa fa-search"></span></button>
  8.                         </div>
  9.                     </form>
  10.                     <div class="return-back"><button class="button"><i class="fa fa-undo fa-2x"></i></button></div>
  11.                 </div>
  12.                 <li class="mobile-dropdown">
  13.                     <i class="fa fa-bars fa-2x"></i>
  14.                     <div class="mobile-menu">
  15.                         <div class="menu-wrapper">
  16.                             <ul class="mobile-nav">
  17.                                 <li><i class="fa fa-home"></i> <a href="/myProfile">Home</a></li>
  18.                                 <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown">Add Profile<em>10</em>
  19.                                     <span class="fa fa-chevron-down"></span></a>
  20.                                     <ul class="dropdown-menu">
  21.                                         <li href="/twitter/oauth"><a>Twitter</a></li>
  22.                                         <li href="/facebook/oauth"><a>Facebook</a></li>
  23.                                         <li href="/googleplus/oauth"><a>Google Plus</a></li>
  24.                                         <li href="/instagram/oauth"><a>Instagram</a></li>
  25.                                     </ul>
  26.                                 </li>
  27.                                 <li class="dropdown">
  28.                                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">Create<span class="fa fa-chevron-down"></span></a>
  29.                                     <ul class="dropdown-menu">
  30.                                         <li><a href="/createStream">Create Stream</a></li>
  31.                                         <li><a href="/createAlbum">Create Album</a></li>
  32.                                         <li><a href="/createGroup">Create Group</a></li>
  33.                                     </ul>
  34.                                 </li>
  35.                                 <li class="dropdown">
  36.                                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">View<span class="fa fa-chevron-down"></span></a>
  37.                                     <ul class="dropdown-menu">
  38.                                         <li><a href="/viewStreams">View Streams</a></li>
  39.                                         <li><a href="/viewAlbums">View Albums</a></li>
  40.                                         <li><a href="/viewGroups">View Groups</a></li>
  41.                                     </ul>
  42.                                 </li>
  43.                                 <li class="item"><a href="/schedule">Schedule</a></li>
  44.                             </ul>
  45.                         </div>
  46.                     </div>
  47.                 </li>
  48.                 <li class="search">
  49.                     <a class="fa fa-search fa-2x"></a>
  50.                 </li>
  51.                 <li class="admin mobile-dropdown">
  52.                     <a class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user fa-2x"></i></a>
  53.                 </li>
  54.             </ul>
  55.         </div>



Qui il file pulito e "syntaxato html" per una più facile lettura: http://pastebin.com/wdytA4Xc


domenico_rizzo ha allegato un file: Screenshot 2015-07-27 20.21.08.png (35089 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da domenico_rizzo il 27/07/2015 alle 20:54
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 23:39
Lunedì, 27/07/2015
Prova con:

Codice sorgente - presumibilmente Plain Text

  1. $('.mobile-nav > li.dropdown').on('click', function(event){
  2.      $(this).next().slideToggle();
  3. });



Il mio blog: https://piero.dev
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 3:36
Martedì, 28/07/2015
Io ti suggerirei di cambiare approccio. Gestirei le animazioni direttamente da css con le classi, in questo modo al click non devi far altro che cambiare la classe di tutti i menu con quella relativa ai menu chiusi e poi impostare la classe del menu aperto su quello corrente. Spero che si capisca cosa intendo.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 4:09
Martedì, 28/07/2015
La tecnica dei CSS funziona bene solo con browser recenti tuttavia.


Il mio blog: https://piero.dev
PM Quote
Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 10:20
Martedì, 28/07/2015
@Roby94 ero giusto partito dal css con animazioni e tutto il resto ma appunto con la compatibilità delle versioni dei vari browser ho alla fine deciso di cambiare approccio.
@pierotofy con il tuo suggerimento ahimè mi nasconde solamente i menu tra di loro, quello che sta sopra racchiude gli altri.

Lavorandoci comunque su per un po' sono riuscito a risolvere, posto di seguito la soluzione visto che magari potrà aiutare qualcuno nella mia stessa situazione. Colgo l'occasione per ringraziare entrambi per i suggerimenti dati! :k:

Codice sorgente - presumibilmente Plain Text

  1. $(".mobile-nav > li.dropdown").click(function(){
  2.         if(false == $("ul",this).is(':visible')) {
  3.             $('.mobile-nav ul').slideUp(300);
  4.         }
  5.         $("ul",this).slideToggle(300);
  6. });


PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 12:54
Martedì, 28/07/2015
Avete ragione, è da tempo che non mi scontro più con quella brutta realtà della compatibilità browser.

PM Quote