Ereignis: “Veraltetes Symbol verwendet, konsultieren Sie die Dokumentation für eine bessere Alternative”
Lesezeit: 3 Minuten
Mistiru
Es ist schon eine Weile her, dass PyCharm (ich nehme an, es ist dasselbe wie bei WebStorm und anderen JetBrains-IDEs) eine schwache Warnung zum Thema ausgibt event Variablen, die ich in meinem Code verwende.
PyCharm zeigt diese Meldung “Veraltetes Symbol verwendet, konsultieren Sie die Dokumentation für eine bessere Alternative”.
Das Problem scheint zu sein, dass die event Variable bezieht sich auf Window.eventund gem MDN-Webdokumentation:
Sie sollten die Verwendung dieser Eigenschaft in neuem Code vermeiden und stattdessen das an die Ereignishandlerfunktion übergebene Ereignis verwenden. Diese Eigenschaft wird nicht allgemein unterstützt, und selbst wenn sie unterstützt wird, führt dies zu einer potenziellen Fragilität Ihres Codes.
Ich weiß, dass eine korrekte Problemumgehung darin besteht, in ein Javascript-Tag zu schreiben:
document.getElementById("my-div").addEventListener("click", function(event) {
console.log("And use this " + event + " instead");
});
Ich frage mich nur, was, falls vorhanden, der richtige Weg wäre, Ereignisse im HTML-Code zu verwenden (onclick Attribut).
Nein, innerhalb eines Attribut-Event-Handlers können Sie nur global verwenden event variabel, das ist richtig. Und ja, der richtige Weg wäre, keine Inline-Event-Handler-Attribute zu verwenden – es ist nicht nur eine Problemumgehung, es ist die Lösung.
– Bergi
28. August 2019 um 16:40 Uhr
vazsonyidl
Ich weiß nicht, ob es für jemanden noch wichtig ist oder nicht, aber getestet WebStorm 2020.3 das Folgende funktioniert, und die IDE beschwert sich nicht über Verwerfung. Darüber hinaus identifiziert WebStorm das Ereignis als Vorfall.
Beachten Sie, dass Sie aus dem gleichen Grund bei der Definition eines Rückrufs in einem Ereignis-Listener den gleichen Verfallshinweis erhalten haben.
Dieser Code löst zum Beispiel dieselbe Benachrichtigung über veraltete Inhalte aus.
In diesem Fall sollten Sie ein Ereignis-Listener-Objekt übergeben, um diese Ablehnung zu entfernen. (dh packen Sie Ihre Callback-Funktion in ein Objekt und setzen Sie es in die handleEvent Eigentum)
Zum Beispiel:
let callbackObject = { handleEvent: function(event){...} }
element.addEventListener("click", callBackObject);
Itamar
Übergeben Sie das Ereignis einfach an einen Rückruf, indem Sie es auf der JS-Seite verwenden:
function preventDefault(e) {
e.preventDefault();
}
Ich empfehle Ihnen dringend, die erste Option zu verwenden und nicht die letztere
Wenn es Ihnen geholfen hat, markieren Sie es bitte als Antwort für zukünftige Besucher
– Itamar
22. November 2020 um 16:46 Uhr
Das ist überhaupt keine Lösung. Pycharm beschwert sich immer noch über die Verwendung von “event” im Attribut.
– G. Marc
22. Dezember 2020 um 8:58 Uhr
Lieber Mark, kannst du deinen Fehler in PyCharm anhängen? Dies ist die Lösung für die gestellte Frage
– Itamar
28. Dezember 2020 um 12:47 Uhr
@Itamar der Fehler ist der gleiche Deprecated symbol used, consult docs for better alternative und erscheint für beide Ihrer Beispiele in der neuesten Version, die zum Zeitpunkt dieses Kommentars von Jetbrains verfügbar war
– Christian
23. Januar 2021 um 12:58 Uhr
Ich denke schon, dass das einen anderen Grund haben könnte. Ich schlage vor, Sie stellen Ihre eigene Frage mit allen erforderlichen Informationen
– Itamar
24. Januar 2021 um 9:09 Uhr
11792500cookie-checkEreignis: “Veraltetes Symbol verwendet, konsultieren Sie die Dokumentation für eine bessere Alternative”yes
Nein, innerhalb eines Attribut-Event-Handlers können Sie nur global verwenden
event
variabel, das ist richtig. Und ja, der richtige Weg wäre, keine Inline-Event-Handler-Attribute zu verwenden – es ist nicht nur eine Problemumgehung, es ist die Lösung.– Bergi
28. August 2019 um 16:40 Uhr