kan iemand mij helpen, ik wil graag dat wanneer je over een bepaalde link gaat je een soort toolboxje krijgt met meerdere opties. Dit werkt super, echter ik krijg het werkelijk niet voor elkaar om er voor te zorgen dat wanneer je muis uit het divje gaat (onmouseout) hij hem weer verbergt. (auto hide dus). Dit doet hij nu:
Als ik op een bepaalde button klik krijg ik perfect gepositioneerd bij de button een mooi toolboxje, maar hij verdwijnt niet en ik krijg te horen van de foutconsole van ff dat "element" niet defined is. (in dit deel:)
maar ik snap het niet, ik geeft element toch mee in de functie en bij het aanroepen van showHideElement wordt ten alle tijden element meegegeven.
Wat zie ik over het hoofd?
Als ik op een bepaalde button klik krijg ik perfect gepositioneerd bij de button een mooi toolboxje, maar hij verdwijnt niet en ik krijg te horen van de foutconsole van ff dat "element" niet defined is. (in dit deel:)
code:
1
2
3
4
| x.onmouseout = function(element)
{
timer = setTimeout("showHideElement('',element);", 1000);
} |
maar ik snap het niet, ik geeft element toch mee in de functie en bij het aanroepen van showHideElement wordt ten alle tijden element meegegeven.
Wat zie ik over het hoofd?
JavaScript:
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
| /*HANDLER POPUPS*/ function showHideElement(obj,element) { var x = document.getElementById(element); var image_toggle = document.getElementById('img_'+element); if(x.style.display == 'block') { x.style.display = 'none'; if (image_toggle) { image_toggle.src='<? print BASE_URL; ?>images/<? print STYLE; ?>/icons/unCollapsedItem.gif'; } } else { var timer = null; x.style.display = 'block'; if (image_toggle) { image_toggle.src='<? print BASE_URL; ?>images/<? print STYLE; ?>/icons/collapsedItem.gif'; } x.onmouseout = function(element) { timer = setTimeout("showHideElement('',element);", 1000); } x.onmouseover = function() { if (timer != null) { clearTimeout(timer); } timer = null; } setElement(obj,element); } } function setElement(obj,element) { var coors = findObjectPosition(obj); coors[1] -= 50; var x = document.getElementById(element); x.style.top = coors[1] + 'px'; x.style.left = coors[0] + 'px'; } function findObjectPosition(obj) { var curleft = curtop = 0; if (obj.offsetParent) { curleft = obj.offsetLeft curtop = obj.offsetTop while (obj = obj.offsetParent) { curleft += obj.offsetLeft curtop += obj.offsetTop } } return [curleft,curtop]; } /*END OF HANDLER POPUPS*/ |
A smooth sea never made a skilled sailor