2010-04-14 2 views
5

Ich bekomme "Die 'charCode' Eigenschaft eines Keydown-Ereignisses sollte nicht verwendet werden. Der Wert ist bedeutungslos "Fehler in Firefox mit jQuery. Mein Code sieht so aus:Getting "Die 'charCode' Eigenschaft eines Keydown-Ereignisses sollte nicht verwendet werden. Der Wert ist bedeutungslos" Fehler in jQuery

$("div#center-box div#empid-textbox input.id").keydown(function(e){ 
    key = e.which; 
    if(key===13){ 
     //do something; 
    }; 
}); 

weiß jemand, wie man diesen Fehler behebt?

+1

Tritt diese * Warnung * nur in der Firefox-Fehlerkonsole auf? Siehe Kommentare hier: http://api.jquery.com/event.which/. Konnte von Entwurf sein. –

+0

Beachten Sie, dass es einen ziemlich subtilen, aber großen Unterschied zwischen "Fehler" und "Warnung" gibt. Diese besondere ist * nur * eine Warnung. Es bricht den Code nicht. Sie können Warnmeldungen ein- und ausschalten, wenn Sie gestört werden. – BalusC

+1

Das Ausschalten von Warnungen scheint kaum der beste Weg zu sein, mit der Situation umzugehen. Die fragte fragte, wie man die Warnung FIX und nicht wie man die Warnung versteckt. – paullb

Antwort

4

FEST !!!

Scheint wie FF die "keydown" -Funktion nicht mag ... Ich änderte es zu "keypress" und es funktioniert perfekt.

+3

-1 Nur Problem ist, dass Keypress verweigert, in Google Chrome zu arbeiten. Wenn ich keydown benutze, funktionieren meine Skripte in allen Browsern, wenn ich zu keypress übergehe, tue ich das nicht, wenn ich nicht entweder nur für firefox oder für andere Browser Workarounds erstelle. Da Sie keine Alternativen vorgeschlagen haben, werde ich diese Lösung ablehnen. – mhenrixon

+0

@CatZ - es sieht nicht so aus, als hätten Sie eine Lösung gefunden oder Alternativen vorgeschlagen. Also mein Kommentar ist zumindest ein bisschen besser als deins (leider kann ich einen Subkommentar nicht ablehnen). – sadmicrowave

4

Überprüfen Sie den ersten Kommentar über http://api.jquery.com/event.which/

fand ich das gleiche lästige Verhalten 3.6.3 und jQuery 1.4.2 mit Firefox. Die Lösung für mich war, "charCode" aus der Liste der geklonten Attribute in Zeile 1956 von jquery-1.4.2.js zu entfernen - diese Liste enthält Attribute, die vom ursprünglichen Ereignis im Browser zu einem maßgeschneiderten jQuery-Ereignisobjekt geklont werden ist vernünftiger. Das Lesen des "charcode" -Attributs in der Klonprozedur schien die Warnung in der Fehlerkonsole auszulösen. Klonierung des tatsächlichen Attributs, sei es „keyCode“ oder „charCode“ scheint gut zu handhaben, wenn Linien 1996-1998 geändert werden:

falls vorhanden
if (!event.which && ((originalEvent.charCode || originalEvent.charCode === 0) ? event.charCode : event.keyCode)) { 
    event.which = originalEvent.charCode || event.keyCode; 
} 

das heißt eine empfindlichere Klonierung der charCode Eigenschaft.

+0

ein beliebiges Wort darüber, wo/wie diese Art von Fix auf v1.6 angewendet werden soll? Ich habe versucht, den gleichen Code-Abschnitt (Zeilen 3027-3029) mit Ihrer Lösung zu ersetzen, und Keypress, keyup und keydown geben mir immer noch die gleiche ursprüngliche Warnung – sadmicrowave

Verwandte Themen