onkeydown javascript event alternatief

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter De Schuyter

Wouter De Schuyter

27/12/2010 12:08:56
Quote Anchor link
Hallo,
ik ben bezig met m'n eindwerk waarbij ik een robot zou moeten kunnen besturen via een website..
Nu dat lukt allemaal wel, maar je hebt knopjes bv "forward"..
Ik wil dat wanneer er op die knop geklikt wordt m'n javascript (werk met ajax) de commando's eenmaal verstuurd en het stop commando verstuurd wanneer je de muis opnieuw uitgedrukt laat..

Dus dacht ik onkeydown="send('forward')" en het stopcommando door onkeyup="resetStatus()"..

Nu zie ik dat onkeydown en onkeyup verouderd zijn en door veel browsers niet meer ondersteund, is er een alternatief voor..?

(mijn code werkt, met onclick getest eerst, ik heb dus gewoon een alternatief voor de event onkeydown nodig.. of een hack om het te doen werken..)


Mvg,
Paradox


Offtopic; voor de geïnteresseerden met onclick: http://vimeo.com/18197670
 
PHP hulp

PHP hulp

25/12/2024 14:56:08
 
Kris Peeters

Kris Peeters

27/12/2010 13:38:45
Quote Anchor link
Ik heb nooit gehoord dat keyup en keydown verouderd zijn.
Het kan misschien wel aan mij liggen.
keyup en keydown werken prima.

Bij sommige webbrowsers (bv. Opera) heb je wel het probleem dat veel toetsen een werking hebben voor de browser zelf (inzoomen, scrollen, ...), waardoor je die moeilijk kan gebruiken voor javascript.
Gewijzigd op 27/12/2010 13:40:56 door Kris Peeters
 
F Loogman

F Loogman

27/12/2010 15:23:19
Quote Anchor link
Een keydown/keyup event is niet verouderd. Wat ik me wel afvraag is aan welk element je de events koppelt, want keyup/keydown worden waarschijnlijk naar het actieve element gestuurd. Om dat te kunnen zijn moet het waarschijnlijk een form-element of link zijn. Het helpt dan om de key-events te koppelen aan het hele document, dan kun je het goed combineren met (andere) click-events.
 
Wouter De Schuyter

Wouter De Schuyter

27/12/2010 15:40:23
Quote Anchor link
Ik koppel het aan een input button, zie hieronder wat relevante code.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            <form action="" method="post">
                <table style="margin: auto;">
                    <tr>
                        <td>
                            <input value="Left" onkeydown="send('left')" onkeyup="resetStatus()" style="padding: 15px; font-size: 14px;" type="button">
                        </td>
                        <td>
                            <input value="Forward" onkeydown="send('forward')" onkeyup="resetStatus()" style="padding: 15px; font-size: 14px;" type="button">
                        </td>
                        <td>
                            <input value="Backward" onkeydown="send('backward')" onkeyup="resetStatus()" style="padding: 15px; font-size: 14px;" type="button">

                        </td>
                        <td>
                            <input value="Right" onkeydown="send('right')" onkeyup="resetStatus()" style="padding: 15px; font-size: 14px;" type="button">
                        </td>
                    </tr>
                  </table>
              </form>  
 
Kris Peeters

Kris Peeters

27/12/2010 15:43:50
Quote Anchor link
Buiten het feit dat je gehoord hebt dat het verouderd is (wat hier ontkend wordt)... Is er eigenlijk iets dat niet werkt?
 
Nicoow Unknown

Nicoow Unknown

27/12/2010 16:00:32
Quote Anchor link
en je kan eventueel onkeypress gebruiken om de hele handeling in 1 keer te doen.
 
Wouter De Schuyter

Wouter De Schuyter

27/12/2010 16:07:33
Quote Anchor link
@Kris; sarcasme..? Neen het werkt niet met onkeyup en onkeydown..

@Nicoow; geen optie want dan blijft de javascript optie uitgevoerd worden terwijl dat de poort geset moet worden en vervolgens terug gereset.. Het is niet realtime van zodra het commando niet meer gestuurd wordt dat de poort uit gaat, er moet wel degelijk een commando gestuurd worden om de poort af te zetten en dat zou dus het makkelijkste moeten gaan met onkeyup en onkeydown..
 
Nicoow Unknown

Nicoow Unknown

27/12/2010 16:14:13
Quote Anchor link
Dan kan je het met JQuery opvangen, dat kan ook prima.
 
Wouter De Schuyter

Wouter De Schuyter

27/12/2010 16:16:03
Quote Anchor link
EDIT; Net geprobeerd met de enter toets.. Dan doet ie het wel, maar dat wil ik niet..

Ik zoek dus een manier om op een knopje te klikken (met de muis) en wanneer je er op klikt een javascript functie wordt aangeroepen en wanneer je het knopje weer uitdrukt (muis los laat) er een 2de javascript functie wordt aangeroepen..


EDIT2; net wat in de javascript events reference zitten kijken, eens met onmousedown en onmouseup proberen..

EDIT3; en ja hoor, nu doet ie het zoals het moet :p.. Mijn excuses voor mijn verwarring, ik ben wat vermoeid..
Gewijzigd op 27/12/2010 16:24:34 door Wouter De Schuyter
 
Nicoow Unknown

Nicoow Unknown

27/12/2010 17:11:23
Quote Anchor link
Hier is een DOH wel op zijn plaats.
Mouse en Key acties zijn 2 verschillende dingen:P
 
Kris Peeters

Kris Peeters

27/12/2010 17:16:08
Quote Anchor link
Als je klaar bent met die mousedown en mouseup ...
Niets houdt je tegen om ook keyboard events toe te voegen.

Maar ja, je moet maar zien of je daar dan nog zin in hebt.
 
Pim -

Pim -

27/12/2010 17:19:40
Quote Anchor link
Wat 'verouderd' is, is het inline gebruiken van event listeners. Doe deze apart in een JS file!

De events zelf zijn uiteraard niet verouderd...
 
Wouter De Schuyter

Wouter De Schuyter

27/12/2010 17:43:05
Quote Anchor link
Pim - op 27/12/2010 17:19:40:
Wat 'verouderd' is, is het inline gebruiken van event listeners. Doe deze apart in een JS file!

De events zelf zijn uiteraard niet verouderd...


Vind jij facebook verouderd..?
Hint: kijk eens naar de sourcecode, van bv een "like" button.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.