Ik ben nu al een aantal dagen bezig met een dropdown menu te maken (dmv een DIV) wat samenwerkt met wat ajax.
Nu is het de bedoeling dat als je op de key down of key up (keycode 38 of 40) de geselecteerde plaats in het dropdown menu 1 omhoog of 1 omlaag gaat.
Nu lukt dit allemaal alleen als ik de key los laat wordt de plaats gedeselecteerd.
Ik ben nu al uren bezig met alleen deze functionaliteit en het wil maar niet lukken, heb echt alles geprobeerd.
Tevens heb ik geprobeerd bij andere alike menu's het af te kijken zoals google suggests, helaas kom ik hier echt niet verder mee, het probleem gaat maar niet weg.
Dit zijn de javascript functies:
Alvast bedankt voor de hulp.
P.S. $('id') staat voor document.getElementById() in prototype.js
Nu is het de bedoeling dat als je op de key down of key up (keycode 38 of 40) de geselecteerde plaats in het dropdown menu 1 omhoog of 1 omlaag gaat.
Nu lukt dit allemaal alleen als ik de key los laat wordt de plaats gedeselecteerd.
Ik ben nu al uren bezig met alleen deze functionaliteit en het wil maar niet lukken, heb echt alles geprobeerd.
Tevens heb ik geprobeerd bij andere alike menu's het af te kijken zoals google suggests, helaas kom ik hier echt niet verder mee, het probleem gaat maar niet weg.
Dit zijn de javascript functies:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
| function keyPress(event) { if ( !bBrowserOk ) return; if ( event.keyCode == 13 ) { return false; } if ( event.keyCode == 40 ) { return false; } if ( event.keyCode == 38 ) { return false; } } function KeyDown(event) { if (!inputFocus) { return true; } // if ( event.keyCode == 34 ) { scrollUp(4); } // if ( event.keyCode == 33 ) { scrollDown(4); } if ( event.keyCode == 40 ) { scrollDown(1); } if ( event.keyCode == 38 ) { scrollUp(1); } if ( event.keyCode == 40 ) { return false; } if ( event.keyCode == 38 ) { return false; } } function KeyUp(event) { if (!inputFocus) { return true; } if ( event.keyCode == 13 ) { ret(); } if ( event.keyCode == 27 ) { ret(); } if ( event.keyCode == 9 ) { ret(); } if ( event.keyCode == 40 ) { return false; } if ( event.keyCode == 38 ) { return false; } } function ret(bEnter) { if ( !bBrowserOk ) return; if (selectedSuggest > 0) { $('plaatsnaam').value = document.getElementById('sb_' + selectedSuggest).innerHTML; selectedSuggest = false; } sbHide() $('plaatsnaam').focus(); return false; } function scrollDown(steps) { if ($('sl').style.display != 'block') { return false; } if (selectedSuggest > 0) { selectedSuggest = parseInt(selectedSuggest); if (selectedSuggest == $('sl').childNodes.length) { return false; } if (!$('sb_' + selectedSuggest)) { return false; } // remove prev $('sb_' + selectedSuggest).className = 'suggestion'; // next selectedSuggest = selectedSuggest + steps; if (!$('sb_' + selectedSuggest)) { return false; } $('sb_' + selectedSuggest).className = 'suggestion_hover'; } else { // first selectedSuggest = 1; $('sb_1').className = 'suggestion_hover'; } return false; } function scrollUp(steps) { if ($('sl').style.display != 'block') { return false; } if (selectedSuggest > 0) { selectedSuggest = parseInt(selectedSuggest); if (selectedSuggest == 1) { return false; } if (!$('sb_' + selectedSuggest)) { return false; } // remove prev $('sb_' + selectedSuggest).className = 'suggestion'; // prev selectedSuggest = selectedSuggest - steps; if (!$('sb_' + selectedSuggest)) { return false; } $('sb_' + selectedSuggest).className = 'suggestion_hover'; } else { // first selectedSuggest = $('sl').childNodes.length; $('sb_' + $('sl').childNodes.length).className = 'suggestion_hover'; } return false; } |
Alvast bedankt voor de hulp.
P.S. $('id') staat voor document.getElementById() in prototype.js
[ Voor 16% gewijzigd door chuxiej op 20-03-2006 15:00 ]
www.dannyhiemstra.nl