Wie kann ich erstellen ein keyup-Ereignis mit einem bestimmten Tastencode im IE8?
Muss ich generieren, keyup-Ereignisse im IE 8 mit nativen DOM-Funktionen (ohne jQuery). Der folgende code erzeugt, feuert, und das Ereignis empfängt, aber der Schlüsselcode ist immer 0. Wie kann ich richtig übergeben Sie den Schlüsselcode?
<form><input id="me" type="submit" /></form>
<script type="text/javascript">
var me = document.getElementById("me");
me.attachEvent("onkeyup", function(e) {
alert(e.keyCode); //=> 0
});
document.getElementById("me").fireEvent('onkeyup', 13);
</script>
InformationsquelleAutor ktusznio | 2011-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Herausgefunden. Die Lösung ist, erstellen Sie ein Ereignis-Objekt, weisen Sie den Schlüsselcode ein, und das Feuer aus dem Knoten.
e = jQuery.Event("keyup"); e.keyCode = 13; $(node).trigger(e);
Von IE9 freuen und für alle anderen Browser Sie verwenden createEvent() und dispatchEvent() anstatt createEventObject und fireEvent(). Das vorangestellte 'on' in der event-name wird auch gelöscht. Siehe stackoverflow.com/a/2490876/921640
Es ist nicht klar, wie definieren Sie das element, um das Ereignis auszulösen. Konnte Sie erklären Sie bitte es oder verlängern die Antwort. Danke.
es kann jede beliebige element bekommen über
document.getElementById
oder ähnliche Methoden.InformationsquelleAutor ktusznio
Machen, dass Ereignisse, die funktionieren in allen Browsern.
Auch ich bevorzuge
me.onkeyup = function(e) { ... }
, aber das' ist nur eine persönliche Präferenz (ich kenne die Nachteile dieser Methode, aber ich habe geschickte Weise zu umgehen)e
unde.keyCode
sind so definiert, dass code nicht änderne
in keiner Weise. Leidere.keyCode
kommt im set zu0
. Bin ich vorbei an der13
richtig?Ich bin nicht vertraut mit
fireEvent()
, aber ich denke nicht so. Es scheint eher so, dass Sie vorbei sind ein zusätzliches argument an die Funktion.InformationsquelleAutor Niet the Dark Absol