Avatar billede chrisrj Forsker
17. december 2002 - 10:24 Der er 8 kommentarer og
1 løsning

Problem med menu - kan ikke klikke på navnet

I forlængelse af http://www.eksperten.dk/spm/295218

Har jeg nu det problem at jeg nu kun kan klikke på billedet og ikke på teksten.

Problemet ligger i denne linie:
response.Write "<IMG class=billede alt='Åben undermenu' src='grafik/pil.gif'><div class=toplinks> " & rs("navn") & "</div>" & vbCrLf

Hvis jeg fjerner "<div class=toplinks>" og "</div>" virker det fint, men så ser det ud af HT. Se evt. eksempel i tidligere spg.

Hvordan skal jeg løse det?
Avatar billede eagleeye Praktikant
17. december 2002 - 10:30 #1
Hvad hvis du flytter rundt så <div class=toplinks> er før billet:

response.Write "<div class=toplinks><IMG class=billede alt='Åben undermenu' src='grafik/pil.gif'>" & rs("navn") & "</div>" & vbCrLf
Avatar billede chrisrj Forsker
17. december 2002 - 10:33 #2
Så virker det slet ikke! :(
Avatar billede chrisrj Forsker
17. december 2002 - 10:36 #3
Vil du se hele koden for menuen? Den fylder ca. 1 side.
Avatar billede chrisrj Forsker
17. december 2002 - 11:06 #4
Nå, åbenbart ikke...
Avatar billede eagleeye Praktikant
17. december 2002 - 11:59 #5
Jeg kan se det i det andet spørgsmål?? men så kan jeg ikke lige se hvad det kan være..
Avatar billede chrisrj Forsker
17. december 2002 - 12:08 #6
Koden i det andet spg er uden script og asp koden. Kunne det tænkes at problemet ligger der?
Avatar billede chrisrj Forsker
17. december 2002 - 14:28 #7
Her er scriptet. Advarsel! Det er meget uoverskueligt! Og nej, jeg har ikke selv lavet det.

<script type="text/javascript">
<!--
function findObj(theObj, theDoc) {
  var p, i, foundObj; 
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length) {
    theDoc = parent.frames[theObj.substring(p+1)].document;
    theObj = theObj.substring(0,p);}
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++)
    foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++)
    foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  return foundObj;
}

function showHideLayers() {
  var i, visStr, obj, args = showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) {
    if ((obj = findObj(args[i])) != null) {
      visStr = args[i+2];
      if (obj.style) {
        obj = obj.style;
        if(visStr == 'show') visStr = 'visible';
        else if(visStr == 'hide') visStr = 'hidden';}
      obj.visibility = visStr;}
  }
}


function skiftKlasse(){
var i,x,tB,j=0,tA=new Array(),arg=skiftKlasse.arguments;
if(document.getElementsByTagName){for(i=4;i<arg.length;i++){tB=document.getElementsByTagName(arg[i]);
  for(x=0;x<tB.length;x++){tA[j]=tB[x];j++;}}for(i=0;i<tA.length;i++){
  if(tA[i].className){if(tA[i].id==arg[1]){if(arg[0]==1){
  tA[i].className=(tA[i].className==arg[3])?arg[2]:arg[3];}else{tA[i].className=arg[2];}
  }else if(arg[0]==1 && arg[1]=='none'){if(tA[i].className==arg[2] || tA[i].className==arg[3]){
  tA[i].className=(tA[i].className==arg[3])?arg[2]:arg[3];}
  }else if(tA[i].className==arg[2]){tA[i].className=arg[3];}}}}
}
//-->



Her er ASP koden(Selv lavet ;) ):

<%
    tal = 1
    under = 0
    SQL = "SELECT * FROM menu"
    Set rs = Conn.Execute(SQL)
               
    do while not rs.eof
        response.Write "<p class=""mndivhdr"" onClick=""skiftKlasse(1,'mn" & tal & "','showit','hideit','div');skiftKlasse(1,'but" & tal & "','mnminus','mnplus','img')"">" & vbCrLf
                               
        SQL = "SELECT * FROM undermenu where menuid='" & rs("id") & "'"
        Set res = Conn.Execute(SQL)
        under = 0
        if not res.eof then
            under = 1
            response.Write "<IMG class=billede alt='Åben undermenu' src='grafik/pil.gif'><div class=toplinks> " & rs("navn") & "</div>" & vbCrLf
        else
            response.Write "<a class=""links"" href=""" & rs("link") & """>" & rs("navn") & "</a>" & vbCrLf
        end if
        if not res.eof then
            under = 1
            response.Write "<div id=""mn" & tal & """ class=""hideit"">" & vbCrLf
               
            do while not res.eof
                response.Write "    <a class=""sublinks"" href=""" & res("link") & """>" & res("navn") & "</a><br>" & vbCrLf
                res.movenext
            loop
        end if

        if under = 1 then
            response.Write "</div>" & vbCrLf
        end if
        rs.movenext
        tal = tal + 1
    loop
%>

Det er sikkert ikke opbygget optimalt, men det virker!(sådan da) ;)
Avatar billede chrisrj Forsker
17. december 2002 - 20:08 #8
Er der virkelig ingen der har bare en lille ide om hvad der kan være galt???

HJÆÆLP!!
Avatar billede chrisrj Forsker
03. januar 2003 - 12:24 #9
lukket
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester