[JS] Inhoud van div aanpassen

Pagina: 1
Acties:

  • dream0r
  • Registratie: Oktober 2001
  • Niet online
Ik ben vandaag begonnen om een soort "vervangende functie" te maken voor de tooltip. De bedoeling is dat als je over een link oid gaat dat je een bijbehorende tekst kunt bekijken. Ik heb hiervoor hetvolgende script geschreven:

code:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<html>
<head>
<title>test</title>
<style>
div
{
border-style: solid;
border-width: 1px;
background: #FFFFCC;
font-size: 12px;
font-family: Verdana;
width: auto;
display: inline;
position: absolute;
padding: 3px;
}
</style>
<script type="text/javascript">

hidden = true;

function toggle_help (e, text)
{
    var div = document.getElementById("help");
    
    // Zoek de muis positie
    var posx = 0;
    var posy = 0;
    if (!e) 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;
        posy = e.clientY + document.body.scrollTop;
    }
        
    // Geef de div de goede tekst
    div.innerText = text;   
    
    // Zet de visibility van de div
    if (hidden)
    {
        div.style.visibility = 'visible';
        hidden = false;
    }
    else
    {
        div.style.visibility = 'hidden';
        hidden = true;
    }
    
    // Geef de div de goede positie
    div.style.top = posy;
    div.style.left = posx;
    
    return true;
}
</script>
</head>
<body>
<a href="" onMouseOver="toggle_help(event, 'help me');" onMouseOut="toggle_help(event)">link 1</a><p>
<a href="" onMouseOver="toggle_help(event, 'help opnieuw');" onMouseOut="toggle_help(event)">link 2</a><p>
<div id="help" style="visibility: hidden;">-</div>
</body>
</html>


Dit werkt perfect in IE 6.0, maar niet in Mozilla (1.5 geloof ik). Is er een vervangende mogelijkheid voor innertext?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 17:17

crisp

Devver

Pixelated

div.innerHTML, of nog mooier: div.firstChild.nodeValue

Intentionally left blank


  • dream0r
  • Registratie: Oktober 2001
  • Niet online
Het werkt perfect, bedankt. Maar hoe werkt die 2e optie trouwens precies ?

[ Voor 5% gewijzigd door dream0r op 11-11-2003 18:39 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 17:17

crisp

Devver

Pixelated

Skizzik schreef op 11 november 2003 @ 18:38:
Het werkt perfect, bedankt. Maar hoe werkt die 2e optie trouwens precies ?
innerHTML is eigenlijk ook een IE-extentie van de DOM, maar geimplementeerd in bijna alle moderne browsers itt innerText. de firstchild.nodeValue is de echte DOM manier - de firstChild van je div is in jouw geval een textNode, en met nodeValue kan je die wijzigen.

Intentionally left blank


  • BaRF
  • Registratie: Augustus 2001
  • Laatst online: 14:50

BaRF

bijna kerst

werkt goed, maar ik zou de uiteindelijke positie +15 ofzo doen, want het is irri als die text zo onder de cursor verschijnt ;)

The space between is where you'll find me hiding, waiting for you


Verwijderd

Even misschien ten overvloede: Je bent je bewust van de title attribuut van links, e.d.? Die genereren over het algemeen automatisch een tooltip voor je.

http://www.w3.org/TR/html4/struct/global.html#adef-title

  • dream0r
  • Registratie: Oktober 2001
  • Niet online
Verwijderd schreef op 12 november 2003 @ 09:21:
Even misschien ten overvloede: Je bent je bewust van de title attribuut van links, e.d.? Die genereren over het algemeen automatisch een tooltip voor je.

http://www.w3.org/TR/html4/struct/global.html#adef-title
Ja die ken ik ;)
Pagina: 1