Avatar billede zarthax Nybegynder
23. januar 2005 - 00:05 Der er 11 kommentarer og
1 løsning

Vise tekst i andet <div>?

Jeg sidder og knokler med en CVside, hvor bruger skal kunne holde musen over noget tekst, (IKKE ET LINK), hvorefter en beskrivelse af denne tekst dukker op, et andet sted på siden.

Nu er jeg ikke den bedste til at forklare, så bær venligst over med mig...

Lidt kode:
Min index.htm indeholder dette vindue:
    <DIV id="txt_frame_placement">
        <IFRAME src="empty.htm" name="vis2" id="vis2" width="250" height="60" scrolling="no" frameborder="0" class="txt_frame">hmm</IFRAME>
    </DIV>

Vinduet ovenover, bliver bla. brugt til at vise disst data, som ligger i cv.htm:
<div class="txt">Produktioner gennem tiderne:<br></div>
<div class="txt"><b>2005</b></div>
<div class="txt">Strategispil 3. Del 11 min.</div>
<div class="txt">Sundbyklanen (koncert) 24 min.</div>

hvordan skal jeg få en forklaring til F.eks. "strategispil 3. del 11 min", over i den <div> der hedder "vis2", UDEN at skulle lave en helt ny side til hver forklaring ????

//zarthax//
Avatar billede softspot Forsker
23. januar 2005 - 00:27 #1
Jeg ved det er en lidt anderledes strategi end den du spørger efter, men kan denne bruges?

<html>

<head>
    <title>Test af form state via script</title>
    <script language="javascript">
        function showText(obj)
        {
            if(obj)
            {
                for(var childIdx = 0; childIdx < obj.children.length; childIdx++)
                {
                    if(obj.children[childIdx].className == "elaboration")
                    {
                        document.getElementById("explanation").innerHTML = obj.children[childIdx].innerHTML;
                        break;
                    }
                }
            }
            return true;
        }
        function hideText()
        {
            document.getElementById("explanation").innerHTML = "";
            return true;
        }
    </script>
    <style rel="stylesheet">
        .elaboration { display:none; }
        .explainbox { width: 150px; height: 100px; padding: 2px; border: solid 1px black; }
    </style>
</head>

<body>
    <div onmouseover="showText(this)" onmouseout="hideText()">Tekst 1 i DIV elementet...
        <span class="elaboration">Denne tekst kan kun ses når musen føres hen over DIV-elementet.</span></div>
    <div onmouseover="showText(this)" onmouseout="hideText()">Tekst 2 i DIV elementet...
        <span class="elaboration">Denne tekst kan også kun ses når musen føres hen over DIV-elementet.</span></div>
    <div onmouseover="showText(this)" onmouseout="hideText()">Tekst 3 i DIV elementet...
        <span class="elaboration">Mere tekst der kun kan ses når musen føres hen over DIV-elementet.</span></div>
       
    <br><br><br><br>
    <div id="explanation" class="explainbox">Forklaring kommer her!</div>
</body>

</html>
Avatar billede zarthax Nybegynder
23. januar 2005 - 00:32 #2
hmm... Jeg kan ikke gennemskue det :(
hvis du går ind på http://zarthax.users.whitehat.dk/cvsite/index.htm og trykker på "CV", tror jeg det er nemmere at se hvad jeg mener... Den beskrivende tekst skal ende til højre for den grimme ramme der snart bliver skiftet ud :-P

//zarthax//
Avatar billede zarthax Nybegynder
23. januar 2005 - 00:42 #3
Jeg kan se at dit script gør lige det jeg leder efter :) :)
men.... *suk* Når jeg sætter det ind i det eksisterende, virker det ikke.... Mon det er fordi at den <div> den skal "sende" til, ligger i index.htm ???

//zarthax//
Avatar billede softspot Forsker
23. januar 2005 - 00:57 #4
Jeg skulle mene du kunne klare dig på samme måde som du gør nu, men blot angive "window.parent." foran dine referencer til laget i højre side, når det er fra DIV-elementer inde i IFRAME...
Avatar billede softspot Forsker
23. januar 2005 - 01:03 #5
Hvis du vil have mit første bud på et script til også at fungere i FireFox, skal du nok ændre flg. kodestump i showText-funktionen:

for(var childIdx = 0; childIdx < obj.childNodes.length; childIdx++)
{
  if(obj.childNodes[childIdx].className == "elaboration")
  {
    document.getElementById("explanation").innerHTML =
                      obj.childNodes[childIdx].innerHTML;
    break;
  }
}
Avatar billede softspot Forsker
23. januar 2005 - 01:03 #6
Kan du få passet window.parent ind i dit eget script?
Avatar billede zarthax Nybegynder
23. januar 2005 - 01:07 #7
heh... jeg aner nada om Javascript, udover at det bruges til at få ting til at fungere :)
Jeg kører stilen Indhold=html stil=CSS funktion=JS,PHP, osv.

//zarthax//
Avatar billede zarthax Nybegynder
23. januar 2005 - 01:18 #8
SÅ, hvor skal "window.parent." ligge ??
Avatar billede softspot Forsker
23. januar 2005 - 01:21 #9
Fair nok :)

Så skal du gøre flg.

1. Ændre hver DIV-linie i CV.htm til

<div class="txt" onmouseover="showText(this)" onmouseout="hideText()"><b>2005</b><span class="hiddentext">skriv den tekst som skal vises på hovedsiden her...</span></div>


2. Lægge funktionerne showText og hideText i et script-element i CV.htm og ændre dem så de ser således ud:

<script language="javascript">
  function showText(obj)
  {
    if(obj)
    {
      for(var childIdx = 0; childIdx < obj.childNodes.length; childIdx++)
      {
        if(obj.childNodes[childIdx].className == "elaboration")
    {
          window.parent.document.getElementById("vis2").innerHTML =
                                      obj.childNodes[childIdx].innerHTML;
          break;
        }
      }
    }
    return true;
  }

  function hideText()
  {
    window.parent.document.getElementById("vis2").innerHTML = "";
    return true;
  }
</script>


3. Opret en style til hiddentext (i CV.htm) som skjuler teksten der skal vises i index.htm:

<style>
.hiddentext { display:none; }
</style>


4. Ændre flg. passage i index.htm

<DIV id="txt_frame_placement">
    <IFRAME src="empty.htm" name="vis2" id="vis2" width="250" height="60" scrolling="no" frameborder="0" class="txt_frame">hmm</IFRAME>
</DIV>

...til:

<DIV id="txt_frame_placement">
  <DIV id="vis2" width="250" height="60" class="txt_frame"> </DIV>
</DIV>


Mon det er det...? Jeg har ikke testet dette, men der kan du måske hjælpe mig lidt :)
Avatar billede zarthax Nybegynder
23. januar 2005 - 01:30 #10
http://zarthax.users.whitehat.dk/cvsite/index.htm
Behøver der siges mere :)
Så mangler det bare lidt baggrundsfarve :)

Tusinde tak for hjælpen :)
Lægger du ikke lige et svar :)
//zarthax//
Avatar billede softspot Forsker
23. januar 2005 - 01:33 #11
Jeg er glad for at kunne hjælpe :)
Avatar billede zarthax Nybegynder
23. januar 2005 - 01:48 #12
:)

G´nat :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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