Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] DropDown Menu

Pagina: 1
Acties:
  • 126 views sinds 30-01-2008
  • Reageer

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Ik heb het volgende menu:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
   <tr>
       <td>
             <ol>
                    <li onclick="showMenu('m1');"><a href="javascript:void(0);">Iets</a>
                         <ul id="m1">
                               <li><a href="">Nog iets</a></li>
                <li><a href="">En nog iets</a></li>
                         </ul>
                    </li>
             </ol>
       </td>
   </tr>
</table>


Is met css opgemaakt en de <ul> staat display none.

Heb ook volgend script:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function showMenu(id){
    if(document.getElementById(id)!=null){
        if(document.getElementById(id).style.display=='none'){
            document.getElementById(id).style.display = 'block';
        }
        else
            document.getElementById(id).style.display = 'none';
    }
}

function hideMenu(id){
    if(document.getElementById(id)!=null){
        document.getElementById(id).style.display = 'none';
    }
}


Dit werkt allemaal heel goed, maar nu moet je terug op de link 'iets' drukken om het menu te verbergen, kan ik niet op 1 of andere manier dit ook verbergen door met men muis buiten het uitklapmenutje te klikken, of wanneer je met je muis uit het uitklapmenu gaat?

  • marko77
  • Registratie: Februari 2002
  • Laatst online: 06-05 19:41
Ja dat kan wel, echter dan zul je met hovers moeten werken.

Suckerfish is wat je nodig hebt, zie hier

Mijn rig


  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

document.body.onclick
Of een onmouseout.

Gewone functies, staan gewoon in de handleiding. Veel plezier met maken.

disjfa - disj·fa (meneer)
disjfa.nl


  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Bij onmouseout wil hij het niet doen, verbergt van zodra je uit de link 'iets' gaat.

document.body.onclick
Fout: document.body has no properties
marko77 schreef op woensdag 25 juli 2007 @ 14:30:
Ja dat kan wel, echter dan zul je met hovers moeten werken.

Suckerfish is wat je nodig hebt, zie hier
Dit heb ik nu, maar zou graag naar een onclick menu gaan :)

[ Voor 80% gewijzigd door osorkon! op 25-07-2007 14:37 ]


  • funkwurm
  • Registratie: December 2005
  • Laatst online: 22-02-2021
osorkon! schreef op woensdag 25 juli 2007 @ 14:32:
document.body.onclick
Fout: document.body has no properties
Je kunt alhier vinden dat het document.onclick is, niet document.body.onclick.

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Houd je er ook rekening mee dat Javascript unobtrusive zou moeten zijn, en dat de site ook zonder javascript te navigeren dient te zijn?

En waar dient die table voor? :X

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Fuzzillogic schreef op woensdag 25 juli 2007 @ 14:57:
Houd je er ook rekening mee dat Javascript unobtrusive zou moeten zijn, en dat de site ook zonder javascript te navigeren dient te zijn?
Is voor lokaal scriptje voor mijzelf, hoeft dus niet echt :)

Die table: kheb maar een stukje van de html gepost, is nutteloos de hele boel te plakken.

Iemand oplossing?

[ Voor 69% gewijzigd door osorkon! op 25-07-2007 15:49 ]


  • funkwurm
  • Registratie: December 2005
  • Laatst online: 22-02-2021
Wat heb je allemaal al geprobeerd nu je weet dat het document.onclick is? :+

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Kweet eigenlijk niet hoe ik die document.onclick kan gebruiken ivm met men menu?

  • funkwurm
  • Registratie: December 2005
  • Laatst online: 22-02-2021
Je wil dat als er naast het menu geklikt wordt, dat het menu inklapt. Als er naast het menu geklikt wordt, zal dit een onclick fireren op het document-object, maar niet op de ul zelf. Dus daarmee moet je testen of er buiten de ul geklikt is en de div verbergen.

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Update: Weet iemand soms of het mogelijk is om een delay aan het menu te hangen, zodat bij mouseout je nog een secondje het menu ziet?

  • Mei
  • Registratie: Juni 2005
  • Laatst online: 17-10-2024

Mei

osorkon! schreef op woensdag 01 augustus 2007 @ 19:00:
Update: Weet iemand soms of het mogelijk is om een delay aan het menu te hangen, zodat bij mouseout je nog een secondje het menu ziet?
Mouseout eventhandler aan het menu hangen. Bij uitvoeren timeoutje laten lopen. Na de seconde menu verbergen. Als het menu weer gehovered wordt de timeout cancellen.
marko77 schreef op woensdag 25 juli 2007 @ 14:30:
Ja dat kan wel, echter dan zul je met hovers moeten werken.

Suckerfish is wat je nodig hebt, zie hier
Doe het dan gelijk goed en doe Son of Suckerfish in plaats van het verouderde eerste artikel :P

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
window.onload = function(){

              var childs = document.getElementById('menu').childNodes, i = childs.length;

              while(i--) {

                      if(childs[i].tagName == 'LI') {

                              childs[i].onclick = function() {

                                      var child = this.getElementsByTagName('ul')[0];

                                      child.style.display = 'block';

                                      child.onmouseover = function(){

                                              this.style.display = 'block';

                                      };

                                      child.onmouseout = function(){

                                              this.style.display = 'none';

                                      };

                              };

                      }
 
              }
 
      };


Kan dit in het huidige scriptje toegepast worden?

Edit: typfoutje

[ Voor 3% gewijzigd door osorkon! op 02-08-2007 18:14 ]

Pagina: 1