|
| Forskellig onClick-funktion afhængig af ta~ Fra : Michael Rasmussen |
Dato : 24-08-08 22:06 |
|
Hej,
Jeg har søgt vidt og bredt for at finde en løsning, desværre uden held.
Måske har jeg søgt efter forkerte udtryk, så nu prøver jeg her...
Det jeg har brug for er, at gøre forskellige ting ved klik på et objekt,
afhængig af om en tastaturtast holdes nede samtidig med museklikket.
Eksempel:
Almindelig klik giver 'FooBar', klik mens 'F'-tasten holdes nede giver
'Foo' og klik mens 'B'-tasten holdes nede giver 'Bar'.
Jeg er kørt fast i følgende funktion, der ikke giver noget resultat:
HTML:
[...] onclick="kliktest(evt)" [...]
Javacript:
function kliktest(evt)
{
var keynum = (evt.which) ? evt.which : evt.keyCode;
alert(String.fromCharCode(keynum));
}
Hvorledes gør man dette i Javascript? (browser-uafhængigt)
--
Michael Rasmussen
------------------------------------------------------------------------
»If you don't fail at least 90 percent of the time,
you're not aiming high enough«, Alan Kay.
| |
Birger Sørensen (24-08-2008)
| Kommentar Fra : Birger Sørensen |
Dato : 24-08-08 22:58 |
|
Michael Rasmussen forklarede den 24-08-2008:
> Hej,
>
> Jeg har søgt vidt og bredt for at finde en løsning, desværre uden held. Måske
> har jeg søgt efter forkerte udtryk, så nu prøver jeg her...
>
> Det jeg har brug for er, at gøre forskellige ting ved klik på et objekt,
> afhængig af om en tastaturtast holdes nede samtidig med museklikket.
>
> Eksempel:
> Almindelig klik giver 'FooBar', klik mens 'F'-tasten holdes nede giver 'Foo'
> og klik mens 'B'-tasten holdes nede giver 'Bar'.
>
> Jeg er kørt fast i følgende funktion, der ikke giver noget resultat:
>
> HTML:
> [...] onclick="kliktest(evt)" [...]
>
> Javacript:
> function kliktest(evt)
> {
> var keynum = (evt.which) ? evt.which : evt.keyCode;
> alert(String.fromCharCode(keynum));
> }
>
> Hvorledes gør man dette i Javascript? (browser-uafhængigt)
keyEvent og mouseEvent er to forskellige ting i DOM.
MouseEvent indholder ingen oplysninger om tastede keys - med undtagelse
af shift, alt og ctrl.
Måske ville det være en ide at bruge een af dem i stedet for en
alfanumerisk...
En alfanumerisk tast der holdes nede, vil generere en hel stribe events
- og nogle browsere reagerer desuden på keyEvents med deres egne
funktioner.
Dit script vil i øvrigt ikke virke i IE.
Her skal eventen hentes fra window.event...
evt = (window.event) ? window.event : evt;
Birger
| |
|
|