Mam <input>
z wbudowanym programem obsługi zdarzeń onkeydown
. W tym module obsługi chciałbym wywołać funkcję i przekazać jej specjalny parametr - dane zdarzenia.Przekazywanie danych zdarzeń do wbudowanych programów obsługi zdarzeń
Gdy chcę do obsługi zdarzeń (np onmousemove) dla całego dokumentu, używam następujący kod:
document.onmousemove=function(e) {
// here I can make a good use of the 'e' variable,
// for example extract the mouse coordinates from it
}
I to działa (choć nie wiem, gdzie e
zmienna - dane o zdarzeniach - pochodzi z).
Ale tym razem chcę użyć funkcji tylko wspomnianej powyżej <input>
.
Muszę przekazać dane zdarzenia do funkcji, aby uzyskać kod wciśniętego klawisza. I chcę to zrobić w tym wbudowanym programie obsługi zdarzeń. I utworzeniu funkcji:
function myfunc (e) {
var evt=window.event?event:e;
var code=evt.keyCode;
alert (code);
}
i wypróbowaniu wszystkich tych metod:
<input onkeydown="myfunc(this)">
<input onkeydown="myfunc(this.onkeydown)">
<input onkeydown="myfunc(onkeydown)">
Ale żaden z nich nie pracował, okno alertu utrzymane wyświetlanie "niezdefiniowane".
Szukałem rozwiązania mojego problemu w Google, ale nie znalazłem niczego, co mogłoby mi pomóc go rozwiązać.
Dziękuję bardzo dużo :) Nie wiedziałam o światowym 'zmiennej event'. Teraz działa doskonale, dzięki jeszcze raz. – rhino
cóż, powinieneś naprawdę przeczytać dokument zanim przejdziesz do obsługi zdarzeń javascript, ponieważ może on stać się bałaganiarski, szczególnie jeśli masz do czynienia z IE. W każdym razie cieszę się, że mogłem pomóc. – galambalazs
Nie działa w IE7 i IE 8 – Luckyy