18. september 2000 - 13:37Der er
8 kommentarer og 1 løsning
Hjælp til en fed menu
Jeg har lavet en menu der forholdsvis viser og skjuler layers ved at angive \'show\' og \'hide\', men jeg vil lave den om til at hvise når man skriver \'show\' ellers er det skjult.
Her er koden:
function MM_showHideLayers() { //v3.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v==\'show\')?\'visible\':(v=\'hide\')?\'hidden\':v; } obj.visibility=v; }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<ole> Så skal du starte med at skrive den rigtigt. Du mangler en \' } \' helt til sidst. Desuden skal du bruge en funktion, der kan oprette objekter udfra dine lag. Den hedder MM_findObj() - og ser således ud:
function MM_findObj(n, d) { //v3.0 var p,i,x; if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x; }
Derudover må jeg tilslutte mig Thors spørgsmål ;o) /mvh </bole>
Alt er lavet i virkeligheden ser den såden ud og den vireker, jeg skal bare lave den om. <script language=\"JavaScript\"> <!--
function MM_findObj(n, d) { //v3.0 var p,i,x; if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x; }
function MM_showHideLayers() { //v3.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v==\'show\')?\'visible\':(v=\'hide\')?\'hidden\':v; } obj.visibility=v; } } //--> </script>
Du ved, man skriver ..onMouseOver=\"MM_showHideLayers(\'layer1\',\'\',\'show\',\'layer2\',\'\',\'hide\'........)\"..Det jeg vil have den til er at den gøre det samme men kun skrive ...(\'layer1\',\'\',\'show\').. og alle den der skal skjules bliver skjult uden at angive hvilke.
OK...meget bedre ;o) Så kan du lave en \'for\' løkke på denne måde:
var numDiv = 5; // Antallet af <div>\'s function myShow(which) { for (i=0; i<numDiv; i++) { MM_showHideLayers(\'layer\'+(i+1),\'\',\'hide\') } MM_showHideLayers(which,\'\',\'show\') }
...som du så bare kalder med: <a href=\"#\" onmouseover=\"myShow(\'layer1\');\">Vis Layer1</a>
Og så skal du selvfølgelig stadig bruge de to andre funktioner. /mvh
Nej, den gemmer alle lagene fra \'layer1\' op til det antal, du har - og tænder derefter det ene lag, du har bedt den om. /mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.