Avatar billede moddi100 Seniormester
24. januar 2009 - 17:33 Der er 20 kommentarer og
1 løsning

Tabel 'forsvinder'

Hej,

Jeg er ved at lave en kalender, holder man over en dato, vises en tabel med de(n) ting der sker den pågældende dag.

function showEvent(id) {
    var table = document.getElementById(id);
    var mouse = getMouseCordinates(); // Henter musens kordinater
    alert("Mouse: " + mouse[0] + " " + mouse[1]);
    table.style.position = "absolute";
    table.style.left = mouse[0];
    table.style.top = mouse[1];
    table.style.display = "block";
}

function hideEvent(id) {
    var table = document.getElementById(id);
    table.style.display = "none";
}

Jeg har så en tabel med et unikt navn/id for den 3. januar har jeg f.eks. følgende: date_1_3

Tabellen kunne se sådan ud:
<table id='date_1_3' style='display: none'>
  <tr>
    <td>100 m. sækkeløb</td>
  </tr>
</table>

Og min kalender:
<snip>
<td><a href='link' onMouseOver='showEvent("date_1_3")' onMouseOut='hideEvent=("date_1_3")'>3 januar</a></td>
<snip>

Når jeg kører musen hen over linket første gang vises den tilhørende tabel. Anden gang sker der sådan ca. intet.

Nogen ideer til hvorfor dette sker?
Avatar billede majbom Novice
24. januar 2009 - 17:43 #1
du skak have et ; ind i mellem dine funktionskald:

<a href='link' onMouseOver='showEvent("date_1_3")' onMouseOut='hideEvent=("date_1_3")'>3 januar</a>
Avatar billede majbom Novice
24. januar 2009 - 17:44 #2
glem det
det gik for stærkt
Avatar billede majbom Novice
24. januar 2009 - 17:44 #3
'hideEvent=("date_1_3")'

skal være:

'hideEvent("date_1_3")'
Avatar billede moddi100 Seniormester
24. januar 2009 - 17:47 #4
Hmm, det virker overhovedet ikke i firefox...
Avatar billede majbom Novice
24. januar 2009 - 17:48 #5
får du nogle js-fejl?
Avatar billede moddi100 Seniormester
24. januar 2009 - 17:51 #6
Nix ikke en eneste. Linket ser ud som følgenden:

<td valign='center' align='center'><font size='2' face='Verdana'><a href='#' onMouseOver='showEvent("date_1_3");' onMouseOut='hideEvent("date_1_3");'>3 januar</a></font>

Så kommer den aktuelle tabel der skal vises (inde i den samme td)...
Avatar billede majbom Novice
24. januar 2009 - 17:59 #7
den bliver vist som den skal 1. gang?
og skjult igen?
men ikke 2. gang?
Avatar billede moddi100 Seniormester
24. januar 2009 - 18:03 #8
I IE8 ja. Det virker tilsyneladende fint i IE7. Firefox viser dog slet ikke tabellen.
Avatar billede majbom Novice
24. januar 2009 - 18:10 #9
ie8 ville jeg nok ikke designe noget kode efter, så længe det er en beta...

får du din alert med koordinater frem i ff?
Avatar billede moddi100 Seniormester
24. januar 2009 - 18:19 #10
Nej overhovedet ikke. Det undrer også mig.
Avatar billede majbom Novice
24. januar 2009 - 18:33 #11
jeg ved ikke om det gør en forskel, men prøv med onmouseover onmouseout - altså kun med små bogstaver
Avatar billede moddi100 Seniormester
24. januar 2009 - 18:38 #12
det gør ikke nogen forskel.
Avatar billede olebole Juniormester
24. januar 2009 - 18:56 #13
<ole>

var mouse = getMouseCordinates(); // Henter musens kordinater

Det tror jeg ikke, getMouseCordinates kan, sådan som du kalder den. Prøv lige at vise den

/mvh
</bole>
Avatar billede moddi100 Seniormester
24. januar 2009 - 18:59 #14
Fandt den på nettet og synes det lød meget godt at den skulle fungere på tværs af alle browsere. I IE er det clientX/clientY der bruges.

function getMouseCordinates() {
    var posx = 0;
    var posy = 0;
    var e = window.event;
    if (e.pageX || e.pageY){
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY){
        posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    return new Array(posx, posy);
}
Avatar billede olebole Juniormester
24. januar 2009 - 20:49 #15
Jamen, den virker skam kun i IE  =)

function getMouseCordinates(e) {
    e = e ? e : window.event;
    var posx = 0;
    var posy = 0;
    if (e.pageX || e.pageY){
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY){
        posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    return new Array(posx, posy);
}

function showEvent(id, e) {
    var table = document.getElementById(id);
    var mouse = getMouseCordinates(e); // Henter musens kordinater
    alert("Mouse: " + mouse[0] + " " + mouse[1]);
    table.style.position = "absolute";
    table.style.left = mouse[0] + "px";
    table.style.top = mouse[1] + "px";
    table.style.display = "block";
}

<a href='link' onMouseOver='showEvent("date_1_3", event)' onMouseOut='hideEvent=("date_1_3")'>3 januar</a>
Avatar billede olebole Juniormester
24. januar 2009 - 20:49 #16
- og husk altid at have fejlkonsollen åben, når du tester i FF  ;o)
Avatar billede moddi100 Seniormester
24. januar 2009 - 22:05 #17
Virker perfekt :D

Smid et svar begge to. Så får i point (30 til olebole og 15 til splazz)
Avatar billede majbom Novice
25. januar 2009 - 12:32 #18
velbekomme :)
Avatar billede majbom Novice
04. november 2010 - 11:05 #19
ole?
moddi?
Avatar billede moddi100 Seniormester
04. november 2010 - 17:22 #20
Tror vi siger ole har haft tid nok til at lægge et svar :)
Avatar billede majbom Novice
04. november 2010 - 19:23 #21
jamen tak for point så :)
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