Ik ben op dit moment bezig met een web applicatie welke een aantal regels kan showen, met daarvoor een checkbox. Nu wil ik daar functionaliteit ini bouwen zoals in Explorer etc, dat wanneer je eerst 1 checkbox aanklikt en daarna een andere met shift+click, dat alle checkboxes daartussen geselecteerd worden.
Hiervoor heb ik dus 2 dingen nodig, een mousedown event welke controleert of de shift toets is ingedrukt en een functie welke ook nog wat zooi uithaalt. Nu dacht ik (logischerwijs) dat EERST een mousedown event werd uitgevoerd en daarna een onclick event, maar dit lijkt niet zo te zijn. In Firefox wordt eerst de onclck uitgevoerd en daarna de mousedown. En in IE wordt het nog leuker, die voert alleen maar de mousedown uit.
Ik heb de volgende code :
de row variable in toggle_class krijgt een table row ge-assigned
Wat dus mijn idee was is : ik zet in de mousedown functie een variable (bijv shiftPressed) welke ik in andere functies kan gebruiken. Hierdoor zou ik dus kunnen weten in de toggle_class functie of de shift key ingedrukt is.
De detectie van de shift key gaat allemaal goed, maar alleen daarna loopt alles scheef. Weet iemand of dit op te lossen is ?
Disclaimer: Deze code is zoveel mogelijk uit mijn huidige code gehaald, dit zal hoogst waarschijnlijk op zichzelf staand niet werken.
Hiervoor heb ik dus 2 dingen nodig, een mousedown event welke controleert of de shift toets is ingedrukt en een functie welke ook nog wat zooi uithaalt. Nu dacht ik (logischerwijs) dat EERST een mousedown event werd uitgevoerd en daarna een onclick event, maar dit lijkt niet zo te zijn. In Firefox wordt eerst de onclck uitgevoerd en daarna de mousedown. En in IE wordt het nog leuker, die voert alleen maar de mousedown uit.
Ik heb de volgende code :
PHP:
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
| <SCRIPT> var shiftPressed = false; var lastSelected = false; function mouseDown(e) { alert('mousedown'); if(typeof(e)=='undefined') e=window.event||window.Event; if (e.shiftKey) { shiftPressed = true; alert('shift pressed!'); } else { shiftPressed = false; } return true; } function toggle_class(id, unread) { alert('toggle_check'); box = document.getElementById('message[' + id + ']'); var row = document.getElementById('row[' + id + ']'); if (box.checked == true) { row.className = 'email-row-selected'; } else { if (unread == 1) row.className = 'email-unread'; else row.className = 'email-read'; } } if(window.Event) document.captureEvents(Event.MOUSEDOWN); document.onmousedown = mouseDown; </SCRIPT> <INPUT ID='message[1]' NAME='message[1]' TYPE='CHECKBOX' VALUE='1' onclick='toggle_class(1, 0)'> |
de row variable in toggle_class krijgt een table row ge-assigned
Wat dus mijn idee was is : ik zet in de mousedown functie een variable (bijv shiftPressed) welke ik in andere functies kan gebruiken. Hierdoor zou ik dus kunnen weten in de toggle_class functie of de shift key ingedrukt is.
De detectie van de shift key gaat allemaal goed, maar alleen daarna loopt alles scheef. Weet iemand of dit op te lossen is ?
Disclaimer: Deze code is zoveel mogelijk uit mijn huidige code gehaald, dit zal hoogst waarschijnlijk op zichzelf staand niet werken.
[ Voor 24% gewijzigd door sorted.bits op 14-10-2005 07:59 ]