Zum Inhalt springen
jQuery 4.0.0 ist da: Was sich für moderne Webprojekte wirklich ändert
Markus Weber
Markus Weber 19. January 2026 · 2 Min. Lesezeit

jQuery 4.0.0 ist da: Was sich für moderne Webprojekte wirklich ändert

Am 14. Januar 2006 hat John Resig jQuery auf der BarCamp in New York City vorgestellt. Exakt 20 Jahre später markiert jQuery 4.0.0 nun einen seltenen, aber wichtigen Schnitt: Das Team veröffentlicht die finale Version nach einem langen Entwicklungszyklus inklusive mehrerer Pre-Releases. Es ist das erste Major-Release seit fast zehn Jahren – und entsprechend bringt es neben vielen Modernisierungen auch Breaking Changes mit.

Die gute Nachricht: Laut Ankündigung sollten die meisten Projekte mit nur kleinen Anpassungen migrieren können. Die weniger gute Nachricht: Einige Änderungen räumen bewusst Altlasten ab, die man in Patch- oder Minor-Releases nie sauber hätte entfernen können. Konkret wurden Legacy-Codepfade gekürzt, zuvor als deprecated markierte APIs entfernt, interne (nie dokumentierte) Parameter aus öffentlichen Funktionen gestrichen und „magische“ Sonderverhalten entfernt, die in der Praxis oft mehr Komplexität als Nutzen erzeugt haben.

Für den Umstieg stehen zwei zentrale Helfer bereit: der offizielle Upgrade-Guide unter https://jquery.com/upgrade-guide/4.0/ sowie ein frisches Release des jQuery-Migrate-Plugins: https://github.com/jquery/jquery-migrate/. Probleme oder Regressions sollen direkt im jQuery-Issue-Tracker landen: https://github.com/jquery/jquery/issues.

Distribution: CDN und npm (und warum Dritt-CDNs später sein können)

jQuery 4.0.0 ist wie üblich über das offizielle CDN sowie über npm verfügbar. Drittanbieter-CDNs werden die Dateien voraussichtlich zeitnah spiegeln – aber deren Release-Zeitpläne liegen nicht beim jQuery-Team, daher kann es ein paar Tage dauern.

Direkte CDN-Links (Full Build)

  • https://code.jquery.com/jquery-4.0.0.js
  • https://code.jquery.com/jquery-4.0.0.min.js

npm

npm install jquery@4.0.0

Browser-Support: IE<11 ist raus, IE11 noch nicht

Eine der sichtbarsten Änderungen: jQuery 4.0 lässt den Support für Internet Explorer 10 und älter fallen. Viele hätten erwartet, dass damit auch IE11 verschwindet – das passiert aber explizit nicht in 4.0. Das Team will den Abbau in Stufen machen; der nächste Schritt ist laut Ankündigung für jQuery 5.0 vorgesehen (siehe PR: https://github.com/jquery/jquery/pull/5077). In 4.0 wird zunächst nur der Code entfernt, der speziell für IE-Versionen <11 existierte.

Zusätzlich wurden weitere sehr alte Browser aus dem Support-Bereich entfernt: Edge Legacy (nicht Chromium-basiert), iOS-Versionen älter als die letzten 3, Firefox-Versionen älter als die letzten 2 (ausgenommen Firefox ESR) sowie der Android Browser. Laut Release-Hinweis sollte dafür auf deiner Seite kein Code angepasst werden müssen – sofern du diese Browser ohnehin nicht mehr unterstützen musst. Wenn doch, ist jQuery 3.x weiterhin der richtige Stand.

Wenn du Alt-Browser wirklich brauchst

Wenn dein Projekt IE10/älter, Edge Legacy, sehr alte iOS-/Firefox-Versionen oder den Android Browser aktiv unterstützen muss, solltest du bei jQuery 3.x bleiben – jQuery 4.0 ist dafür nicht mehr gedacht.

Security-Modernisierung: Trusted Types und weniger CSP-Fallen

jQuery 4.0 adressiert ein Thema, das in vielen Enterprise- und WordPress-nahen Umgebungen längst Pflicht ist: Content Security Policy (CSP). Neu ist Support für Trusted Types (ein Sicherheitsmechanismus, der DOM-XSS erschweren soll). Konkret stellt jQuery sicher, dass HTML, das als TrustedHTML (MDN: https://developer.mozilla.org/en-US/docs/Web/API/TrustedHTML) vorliegt, als Input für Manipulationsmethoden genutzt werden kann, ohne gegen die CSP-Direktive require-trusted-types-for zu verstoßen.

Parallel dazu wurde das Verhalten bei asynchronen Script-Requests weiter in Richtung CSP-Kompatibilität geschoben: Wo früher teils Inline-Scripts bzw. XHR-basierte Ladevorgänge CSP-Probleme verursachen konnten, nutzt jQuery nun in den meisten Fällen <script>-Tags für asynchrone Script-Requests. Das reduziert CSP-Fehler, weil Inline-Script-Ausführung vermieden wird (siehe PR: https://github.com/jquery/jquery/pull/4763).

Es gibt aber weiterhin Sonderfälle, in denen XHR für asynchrone Script-Requests verwendet wird – etwa wenn die Option "headers" gesetzt wird. Der Release-Hinweis ist hier eindeutig: Stattdessen soll scriptAttrs genutzt werden. Grundsätzlich gilt: Wo möglich, wird jetzt ein <script>-Tag verwendet.

Build- und Tooling-Update: Quellcode ist auf ES Modules umgestellt

Ein strategisch wichtiger Schritt – gerade für moderne Build-Setups: Der jQuery-Source auf dem main-Branch wurde von AMD (Hintergrund: https://requirejs.org/docs/whyamd.html) auf ES Modules umgestellt (PR: https://github.com/jquery/jquery/pull/4541).

Das ist mehr als Kosmetik. Zwar wurde der Source schon lange über npm und GitHub veröffentlicht, aber ein direkter Import als Module war ohne RequireJS (jQuerys früheres Build-Tool: https://requirejs.org/) praktisch nicht möglich. Für das Packaging setzt jQuery jetzt auf Rollup (https://rollupjs.org/introduction/); außerdem laufen die Tests separat auch gegen die ES-Module. Damit wird jQuery deutlich kompatibler mit modernen Bundlern, Workflows und auch mit Browsern, die über <script type=module> arbeiten.

Breaking Changes, die in der Praxis relevant werden können

Ein Major-Release ohne schmerzhafte Ecken wäre ungewöhnlich. Bei jQuery 4.0 lohnt es sich vor allem, diese Punkte bewusst zu prüfen – sie sind typisch für Altcode in WordPress-Themes, Legacy-Backoffice-Anwendungen oder lange gewachsene jQuery-Plugins.

Deprecated APIs sind endgültig entfernt

Mehrere APIs waren schon seit einigen Versionen als deprecated markiert – in 4.0 sind sie nun weg. Die Begründung: Entweder waren sie immer als interne Helfer gedacht oder es gibt dafür in allen unterstützten Browsern mittlerweile saubere native Entsprechungen.

Entfernt wurden:

  • jQuery.isArray
  • jQuery.parseJSON
  • jQuery.trim
  • jQuery.type
  • jQuery.now
  • jQuery.isNumeric
  • jQuery.isFunction
  • jQuery.isWindow
  • jQuery.camelCase
  • jQuery.nodeName
  • jQuery.cssNumber
  • jQuery.cssProps
  • jQuery.fx.interval

Die Alternativen sind meist straightforward: Array.isArray(), JSON.parse(), String.prototype.trim() und Date.now() decken die typischen Fälle ab.

Spannend ist auch der Seiteneffekt: Zusammen mit dem Entfernen des alten IE-Support-Codes schrumpft jQuery 4.0 um über 3 KB (gzip).

Array-Methoden aus dem jQuery-Prototyp entfernt (push, sort, splice)

Der jQuery-Prototyp hatte lange Array-Methoden, die sich nicht wie normale jQuery-Methoden verhalten und immer nur intern gedacht waren: push, sort und splice. Diese sind nun aus dem Prototyp entfernt. Wenn du sie (bewusst oder unbewusst) auf jQuery-Collections verwendet hast, musst du umstellen.

Das Release nennt auch gleich das passende Muster:

// vorher (in jQuery 3.x evtl. genutzt)
// $elems.push(elem)

// nachher: Array-Methode direkt auf die jQuery-Collection anwenden
[].push.call($elems, elem);

Focus/Blur-Event-Reihenfolge folgt jetzt der W3C-Spezifikation

Ein Klassiker: Die Reihenfolge von Focus- und Blur-Events war über Jahre hinweg browserübergreifend inkonsistent. jQuery hatte sich deshalb vor langer Zeit für eine einheitliche Reihenfolge entschieden und native Unterschiede überdeckt. Inzwischen sind die aktuellen Browser-Versionen (die jQuery 4.0 unterstützt) aber konvergiert – nur leider auf eine andere Reihenfolge als die, die jQuery historisch etabliert hatte. Das ist einer der Breaking Changes, die in UI-lastigen Anwendungen auffallen können.

Ab jQuery 4.0 wird das native Verhalten nicht mehr überschrieben. Damit folgt (in allen Browsern außer IE) die aktuelle W3C-Spezifikation:

  1. blur
  2. focusout
  3. focus
  4. focusin

Zum Vergleich: In früheren jQuery-Versionen war die Reihenfolge: focusout, blur, focusin, focus. Die Ironie laut Release: Der einzige Browser, der jemals der alten W3C-Spezifikation gefolgt ist (bevor sie 2023 aktualisiert wurde), war Internet Explorer.

Slim Build: jetzt ohne Deferreds und Callbacks (und deutlich kleiner)

Der Slim Build wird mit jQuery 4.0.0 nochmal kleiner: Deferreds und Callbacks sind entfernt, der Slim Build liegt laut Release bei rund 19,5 KB gzip. Hintergrund: Deferreds unterstützten schon lange den Promises/A+-Standard (https://promisesaplus.com/) – und in modernen Browsern sind native Promises ohnehin verfügbar.

Wichtig ist die Nuance: Deferreds haben zusätzliche Features, die native Promises nicht bieten. Trotzdem lässt sich der Großteil typischer Deferred-Nutzung auf Promise-Methoden migrieren.

Wenn du IE11 unterstützen musst, wird’s kniffliger: Native Promises sind dort nicht verfügbar. Empfehlung aus dem Release: Entweder den Main Build nutzen oder einen Promise-Polyfill ergänzen.

CDN-Links (Slim Build)

  • https://code.jquery.com/jquery-4.0.0.slim.js
  • https://code.jquery.com/jquery-4.0.0.slim.min.js

Der Slim Build ist weiterhin für die Fälle gedacht, in denen du z. B. kein Ajax brauchst oder bewusst eine dedizierte Ajax-Library einsetzen willst. Für Animationen reichen in vielen Projekten ohnehin CSS und Klassen-Manipulation, statt jQuery-Effekte. Zudem gibt es (außer IE11) in allen unterstützten Browsern native Promises, sodass Deferreds/Callbacks in vielen Setups verzichtbar werden.

Zur Einordnung: jQuery-Größe ist heute selten der limitierende Performance-Faktor – trotzdem spart der Slim Build laut Release etwa 8 KB gzip im Vergleich zur regulären Version.

Changelog-Highlights: was 4.0 unter der Haube bewegt

Neben den großen Themen (Browser-Support, CSP/Trusted Types, ESM) steckt viel Detailarbeit im Release. Der vollständige Vergleich ist hier verlinkt: Full changelog: 4.0.0. Ein paar Punkte, die bei Upgrades typischerweise relevant sind:

Ajax

  • Array-Daten werden nicht mehr als binär behandelt (Commit: 992a1911)
  • processData: true ist auch für binäre Daten erlaubt (Commit: ce264e07)
  • Binärdaten inklusive FormData werden unterstützt (Commit: a7ed9a7b)
  • headers wird für Script-Transport unterstützt, auch cross-domain (Issue: #5142, Commit: 6d136443)
  • null als Success-Callback in jQuery.get wird unterstützt (Issue: #4989, Commit: 74978b7e)
  • Scripts werden nicht mehr automatisch ausgeführt, wenn kein dataType gesetzt ist (Issue: #4822, Commit: 025da4dd)
  • responseJSON funktioniert auch bei fehlerhaften Same-Domain-JSONP-Requests (Commit: 68b4ec59)
  • JSONP-Fehler-Script-Responses werden ausgeführt (Issue: #4771, Commit: a1e619b0)
  • CSP-Fehler im Script-Transport bei async Requests werden vermieden (Issue: #3969, Commit: 07a8e4a1)
  • Die Auto-Promotion von JSON zu JSONP wurde entfernt (Issues: #1799, #3376, Commit: e7b3bc48)
  • s.contentType wird ggf. mit dem Content-Type-Header überschrieben (Issue: #4119, Commit: 7fb90a6b)
  • AJAX-Event-Aliases werden deprecated; Inline-Event/Alias in deprecated (Commit: 23d53928)
  • Scripts werden bei nicht erfolgreichen HTTP-Responses nicht ausgeführt (Issue: #4250, Commit: 50871a5a)
  • jQuery.ajaxSettings.xhr wurde vereinfacht (Issue: #1967, Commit: abdc89ac)

Attribute

  • .attr(name, false) entfernt jetzt für alle nicht-ARIA-Attribute (Issue: #5388, Commit: 063831b6)
  • Ein paar Bytes eingespart (Commit: b40a4807)
  • Attribute werden im Setter nicht mehr stringifiziert (Issue: #4948, Commit: 4250b628)
  • Die Signatur toggleClass(boolean|undefined) wurde entfernt (Issues: #3388, Commit: a4421101)
  • val() refactored: kein Strip von Carriage Return, IE-Workarounds isoliert (Commit: ff281991)
  • Type-Attr-Hook wird außerhalb von IE gar nicht mehr gesetzt (Commit: 9e66fe9a)

CSS

  • Dimensionen von <col>-Elementen in Tabellen gefixt (Issue: #5628, Commit: eca2a564)
  • Cache in finalPropName entfernt (Commit: 640d5825)
  • Tests gefixt & Tests unter CSS Zoom unterstützt (Issue: #5489, Commit: 071f6dba)
  • reliableTrDimensions-Supporttest für initial versteckte iframes gefixt (Commit: b1e66a5f)
  • Selector: an 3.x angeglichen, outer selector.js wrapper entfernt (Commit: 53cf7244)
  • reliableTrDimensions-Supporttest funktioniert mit Bootstrap CSS (Issue: #5270, Commit: 65b85031)
  • offsetHeight(true) etc. inkludiert negative Margins (Issue: #3982, Commit: bce13b72)
  • undefined für whitespace-only CSS-Variable-Werte (Commit: 7eb00196)
  • Whitespace von undefined custom property wird nicht getrimmt (Issue: #5105, Commit: ed306c02)
  • Falsy Values werden in addClass(array) übersprungen, Code komprimiert (Issue: #4998, Commit: a338b407)
  • Begründung für rtrim bei CSS-Property-Values (Commit: 655c0ed5)
  • Whitespace um CSS Custom Properties wird getrimmt (Issue: #4926, Commit: efadfe99)
  • show, hide und toggle sind im Slim Build enthalten (Commit: 297d18dd)
  • Opacity CSS hook entfernt (Commit: 865469f5)
  • Workaround für buggy getComputedStyle bei table rows in IE/Edge (Issue: #4490, Commit: 26415e08)
  • „px“ wird nicht mehr automatisch hinzugefügt – mit wenigen Ausnahmen (Issues: #2795, Commit: 00a9c2e5)

Core (Auswahl)

  • Obsolete Workarounds entfernt, Support-Kommentare aktualisiert (Commit: e2fe97b7)
  • $.parseHTML wechselt von document.implementation auf DOMParser (Commit: 0e123509)
  • Exports-Setup für Bundler repariert (ESM & CommonJS) (Issue: #5416, Commit: 60f11b58)
  • Mehr Infos zu named exports (Commit: 5f869590)
  • Code vereinfacht nach Browser-Support-Reduktion (Commit: 93ca49e6)
  • Factory in separate exports verschoben (Commit: 46f6e3da)
  • Named exports in src/ (Issue: #5262, Commit: f75daab0)
  • Regression in jQuery.text() auf HTMLDocument-Objekten gefixt (Issue: #5264, Commit: a75d6b52)
  • Selector: jQuery.contains vom Selector ins Core-Modul verschoben (Commit: 024d8719)
  • Root-Parameter von jQuery.fn.init entfernt (Commit: d2436df3)
  • Nicht mehr darauf angewiesen, dass splice auf Input vorhanden ist (Commit: 9c6f64c7)
  • Manipulation: Basic TrustedHTML Support (Issue: #4409, Commit: de5398a6)
  • Browser-Fehler in parseXML werden reported (Issue: #4784, Commit: 89697325)
  • jQuery.isXMLDoc akzeptiert falsy Input (Issue: #4782, Commit: fd421097)
  • Edge Legacy Support entfernt (Issue: #4568, Commit: e35fb62d)
  • iframe script im eigenen Kontext ausführen, doc param in globalEval (Issue: #4518, Commit: 4592595b)
  • Callbacks & Deferreds auch im Slim Build ausgeschlossen (Commit: fbc44f52)
  • Migration von AMD zu ES modules (Commit: d0ce00cd)
  • Array.prototype.flat nutzen, wo unterstützt (Issue: #4320, Commit: 9df4f1de)
  • Private Kopien von push/sort/splice aus dem jQuery-Prototyp entfernt (Commit: b59107f5)
  • .even() & .odd() als Ersatz für POS :even & :odd (Commit: 78420d42)
  • jQuery.trim deprecated (Issue: #4363, Commit: 5ea59460)
  • IE-spezifische Support-Tests entfernt, reliance auf document.documentMode (Issue: #4386, Commit: 3527a384)
  • Support für IE <11, iOS <11, Firefox <65, Android Browser & PhantomJS entfernt (Issue: #3950, #4299, Commit: cf84696f)
  • Deprecated jQuery APIs entfernt (Issue: #4056, Commit: 58f0c00b)

Data

  • Refactor zur Größenreduktion (Commit: 805cdb43)
  • Event/Manipulation: Kollisionen mit Object.prototype verhindern (Issue: #3256, Commit: 9d76c0b1)
  • camelCase-Implementierungen für Data & CSS/Effects getrennt (Issue: #3355, Commit: 8fae2120)

Deferred

  • getStackHook wurde zu getErrorHook umbenannt (Issue: #5201, Commit: 258ca1ec)
  • Source Maps werden in jQuery.Deferred.exceptionHook respektiert (Issue: #3179, Commit: 0b9c5037)
  • Rename master to primary (Commit: a32cf632)

Deprecated

  • .hover() wird über nicht-deprecated Methoden definiert (Commit: fd6ffc5e)
  • jQuery.trim entfernt (Commit: 0b676ae1)
  • AMD Parameter-Reihenfolge gefixt (Commit: f810080e)

Dimensions

  • offset prop fallback für Firefox bei unreliable TR dimensions (Issue: #4529, Commit: 3bbbc111)

Docs

  • Kleinere Kommentar-Issues gefixt (Commit: e4d4dd81)
  • herodevs link im README aktualisiert (Issue: #5695, Commit: 093e63f9)
  • CONTRIBUTING.md an 3.x-stable ausgerichtet (Commit: d9281061)
  • CONTRIBUTING.md aktualisiert (Commit: 4ef25b0d)
  • Version-Support-Sektion ins README (Commit: cbc2bc1f)
  • Verbleibende HTTP-URLs auf HTTPS aktualisiert (Commit: 7cdd8374)
  • Modul-Links im package README gefixt (Commit: ace646f6)
  • watch task in CONTRIBUTING.md aktualisiert (Commit: 77d6ad71)
  • Typos via codespell gefixt (Commit: 620870a1)
  • Stale gitter badge entfernt (Commit: 67cb1af7)
  • „Grunt build“-Sektion aus PR-Template entfernt (Commit: 988a5684)
  • Stale badge aus README entfernt (Commit: bcd9c2bc)
  • README des published package aktualisiert (Commit: edccabf1)
  • git.io aus GitHub Actions Comment entfernt (Commit: 016872ff)
  • webpack website in README aktualisiert (Commit: 01819bc3)
  • Link zu patchwelcome und help wanted issues ergänzt (Commit: 924b7ce8)
  • Link zum Preview der neuen CLAs ergänzt (Commit: 683ceb8f)
  • Falsche trac-NUMBER References gefixt (Commit: eb9ceb2f)
  • Expired links aus altem jquery source entfernt (Commit: ed066ac7)
  • Links zum Web Archive aus source entfernt (Issue: #4981, Commit: e24f2dcf)
  • #NUMBER Trac References ersetzt durch trac-NUMBER (Commit: 5d5ea015)
  • URL zum latest jQuery build in CONTRIBUTING.md aktualisiert (Commit: 9bdb16cd)
  • CLA checkbox aus PR template entfernt (Commit: e1248931)
  • irc auf Libera aktualisiert und LAMP dead link gefixt (Commit: 175db73e)
  • Frequently Reported Issues in GitHub issue template aktualisiert (Commit: 7a6fae6a)
  • JS Foundation mentions geändert zu OpenJS Foundation (Commit: 11611967)
  • SECURITY.md ergänzt, security email address sichtbar (Commit: 2ffe54ca)
  • Weitere Typos gefixt (Commit: 1a7332ce)
  • Link zum jsdom repository aktualisiert (Commit: a62309e0)
  • https für Hyperlinks in README (Commit: 73415da2)
  • Mention vom event/alias.js module aus README entfernt (Commit: 3edfa1bc)
  • Links zu EdgeHTML issues über Web Archive (Commit: 1dad1185)
  • Users werden zu GitHub docs fürs Klonen des Repo geleitet (Commit: f1c16de2)
  • OS X in README geändert zu macOS (Commit: 5a3e0664)
  • Die meisten URLs zu HTTPS aktualisiert (Commit: f09d9210)
  • Homebrew-Link von HTTP auf HTTPS (Commit: e0022f23)

Effect / Effects

  • Unnötige Condition in .stop() gefixt (Issue: #4374, Commit: 110802c7)
  • jQuery.fx.interval entfernt (Commit: 6c2c7362)

Event

  • .preventDefault() in beforeunload (Commit: 7c123dec)
  • Robusteres inner native event in leverageNative (Issue: #5459, Commit: 527fb3dc)
  • Kollisionen zwischen jQuery.event.special & Object.prototype vermeiden (Commit: bcaeb000)
  • Check für saved data in leverageNative vereinfacht (Commit: dfe212d5)
  • trigger(focus/blur/click) funktioniert mit nativen Handlers (Issue: #5015, Commit: 6ad3651d)
  • Focus/blur in IE über focusin/focusout simulieren (Issues: #4856, #4859, #4950, Commit: ce60d318)
  • Fix: focus triggering nach .on(focus).off(focus) nicht brechen (Issue: #4867, Commit: e539bac7)
  • Focus re-triggering fokussiert nicht zurück auf Originalelement (Issue: #4382, Commit: dbcffb39)
  • Kein Crash, wenn Element während blur entfernt wird (Issue: #4417, Commit: 5c2d0870)
  • event.which shim entfernt (Issue: #3235, Commit: 1a5fff4c)
  • jQuery.event.global entfernt (Commit: 18db8717)
  • Events werden nur an Objekte gebunden, die Daten akzeptieren (Issue: #4397, Commit: d5c505e3)
  • Kein Shimming von focusin/focusout mehr (Issue: #4300, Commit: 8a741376)
  • leverageNative registriert keine duplizierten dummy handlers (Commit: eb6c0a7c)
  • Fix: Handling mehrerer async focus events (Issue: #4350, Commit: ddfa8376)

Manipulation

  • jQuery.cleanData überspringt beim Cleanup keine Elemente mehr (Issue: #5214, Commit: 3cad5c43)
  • Test generalisiert, um IE zu unterstützen (Commit: 88690ebf)
  • Support für $el.html(selfRemovingScript) (Issue: #5377, Commit: 937923d9)
  • domManip in separate Datei extrahiert (Commit: ee6e8740)
  • HTML-Kommentare werden nicht aus scripts entfernt (Issue: #4904, Commit: 2f8f39e4)
  • crossorigin-Attribut bei DOM-Manipulation respektiert (Issue: #4542, Commit: 15ae3614)
  • Keine String-Konkatenation in buildFragment (Commit: 9c98e4e8)
  • jQuery.htmlPrefilter ist jetzt Identity Function (Commit: 90fed4b4)
  • Selector: nodeName util genutzt, um Größe zu sparen (Commit: 4504fc3d)

Offset

  • Search depth erhöht, um den „realen“ offset parent zu finden (Commit: 556eaf4a)

Release Engineering

  • 4.0.0 Release (Commit: 4f2fae08)
  • dist files aus main branch entfernt (Commit: c838cfb5)
  • 4.0.0-rc.2 (Commit: 97525193)
  • AUTHORS.txt aktualisiert (Commit: c128d5d8)
  • Release-Fixes nach 4.0.0-rc.1 (Commit: a5b0c431)
  • dist files aus main branch entfernt (Commit: 9d06c6dd)
  • 4.0.0-rc.1 (Commit: 586182f3)
  • npm publish in post-release Phase ausführen (Commit: ff1f0eaa)
  • Nur browserless tests während Release ausführen (Commit: fb5ab0f5)
  • Tests temporär während Release deaktivieren (Commit: 3f79644b)
  • tmp/release/dist folder beim Releasing publizieren (Issue: #5658, Commit: a865212d)
  • Build-Date in verification korrigiert; weitere Verbesserungen (Commit: 53ad94f3)
  • dist files aus main branch entfernt (Commit: be048a02)
  • 4.0.0-beta.2 (Commit: 51fffe9f)
  • Builds haben korrekte Version (Commit: 3e612aee)
  • preReleaseBase in config file (Commit: 1fa8df5d)
  • Fix: pre/post release scripts unter Windows (Commit: 5518b2da)
  • AUTHORS.txt aktualisiert (Commit: 862e7a18)
  • Release-Prozess zu release-it migriert (Issue: jquery/jquery-release#114, Commit: 2646a8b0)
  • Factory files zur Release-Distribution hinzugefügt (Issue: #5411, Commit: 1a324b07)
  • buildDefaultFiles direkt nutzen und Version übergeben (Commit: b507c864)
  • dist-module folder ebenfalls kopieren (Commit: 63767650)
  • Nur versionierte Files zum CDN publizieren (Commit: 3a0ca684)
  • Scripts und dev deps aus dist package.json entfernt (Commit: 7eac932d)
  • Build-Command in Release.generateArtifacts aktualisiert (Commit: 3b963a21)
  • md5 sums Support in Windows (Commit: f088c366)
  • Kein globales grunt install mehr nötig (Commit: b2bbaa36)
  • Release-Dependencies upgraded (Commit: 967af732)
  • Unused chalk dependency entfernt (Commit: bfb6897c)
  • In-repository dist README fixture genutzt (Commit: 358b769a)
  • AUTHORS.txt aktualisiert (Commit: 1b74660f)
  • AUTHORS.txt aktualisiert (Commit: cf9fe0f6)

Selector

  • Workaround für :has entfernt; Tests auf iPhone & iPad (Commit: 65e35450)
  • jQuery.expr[":"]/jQuery.expr.filters korrekt deprecated (Commit: 329661fd)
  • selector.js hängt von attributes/attr.js ab (Issue: #5379, Commit: e06ff088)
  • selector.js Dependencies aus diversen Modulen eliminiert (Commit: e8b7db4b)
  • jQuery.find.{tokenize,select,compile,setDocument} wieder exposed (Issue: #5259, Commit: 338de359)
  • Nicht mehr auf CSS.supports("selector(...)") verlassen (Issue: #5194, Commit: 68aa2ef7)
  • Selection context logic auf selector-native backport (Issue: #5185, Commit: 2e644e84)
  • Selector lists funktionieren wieder mit qSA (Issue: #5177, Commit: 09d988b7)
  • uniqueSort chainable Methode implementiert (Issue: #5166, Commit: 5266f23c)
  • selector-native.js re-introduced (Commit: 4c1171f2)
  • DOM-Manip innerhalb template contents gefixt (Issue: #5147, Commit: 3299236c)
  • Legacy pseudos gedroppt, custom pseudos getestet (Commit: 8c7da22c)
  • jQuery :has nutzen, wenn CSS.supports(selector(...)) non-compliant (Issue: #5098, Commit: d153c375)
  • “a:enabled” workaround für Chrome <=77 entfernt (Commit: c1ee33ad)
  • Leere Attribute-Selector funktionieren wieder in IE (Issue: #4435, Commit: 05184cc4)
  • Shallow document comparisons in uniqueSort (Issue: #4441, Commit: 15750b0a)
  • Test für throwing on post-comma invalid selectors (Commit: 6eee5f7f)
  • Selectors mit leading combinators nutzen wieder qSA (Commit: ed66d5a2)
  • Shallow document comparisons vermeiden IE/Edge crashes (Issue: #4441, Commit: aa6344ba)
  • Size reduziert, setDocument vereinfacht (Commit: 29a9544a)
  • :scope pseudo-class leveraged, wo möglich (Issue: #4453, Commit: df6a7f7f)
  • querySelectorAll shortcut usage zurückgebracht (Commit: cef4b731)
  • Sizzle in selector module inline (Commit: 47835965)
  • Sizzle tests zu jQuery portiert (Commit: 79b74e04)

Support

  • Support div display wird auf block gesetzt (Issue: #4832, Commit: 09f25436)

Traversing

  • contents() auf <object>s mit children in IE gefixt (Commit: ccbd6b93)
  • contents() auf <object>s mit children gefixt (Issue: #4384, Commit: 4d865d96)

20 Jahre jQuery: Release mit Community-Faktor

Zum 20. Geburtstag gab es nicht nur ein Release, sondern auch ein Wiedersehen: Viele Beteiligte trafen sich laut Release-Post in Dallas zu einer Reunion, John Resig war per Zoom dabei. Der Blogpost selbst wurde in diesem gemeinsamen Moment veröffentlicht.

Gruppenfoto der jQuery-Reunion zum 20. Jubiläum
Reunion der jQuery-Community zum 20. Geburtstag (Foto im Originalbeitrag verlinkt). — Forrás: blog.jquery.com (Official jQuery Blog)

Praktischer Upgrade-Fahrplan (ohne Spekulation)

Wenn du von 3.x auf 4.0 gehst, ist der saubere Weg laut Ankündigung klar strukturiert:

  1. Upgrade-Guide lesen: https://jquery.com/upgrade-guide/4.0/
  2. jQuery Migrate einplanen: https://github.com/jquery/jquery-migrate/
  3. Breaking Changes gezielt testen: Fokus/Blur-Event-Reihenfolge, entfernte deprecated APIs, entfernte Array-Prototyp-Methoden, Slim-Build-Unterschiede
  4. Bei Problemen Issues melden: https://github.com/jquery/jquery/issues

Danksagung: viele Hände, ein Major-Release

Im Release wurden explizit viele Contributor genannt, die durch Patches, Bugreports oder Tests geholfen haben, u. a.: Alex, Ahmed S. El-Afifi, fecore1, Dallas Fraser, Richard Gibson, Michał Gołębiowski-Owczarek, Pierre Grimaud, Gabriela Gutierrez, Jonathan, Necmettin Karakaya, Anders Kaseorg, Wonseop Kim, Simon Legner, Shashanka Nataraj, Pat O’Callaghan, Christian Oliff, Dimitri Papadopoulos Orfanos, Wonhyoung Park, Bruno PIERRE, Baoshuo Ren, Beatriz Rezener, Sean Robinson, Ed Sanders, Timo Tijhof, Tom, Christian Wenz, ygj6 – sowie das gesamte jQuery-Team.

Markus Weber

Markus Weber

Senior-Entwickler, Spezialist für Datenbankoptimierung und Performance-Tuning. PostgreSQL und Redis sind meine Favoriten. Ich liebe es, komplexe Probleme in einfache Lösungen zu zerlegen.

Alle Beiträge

Tritt der HelloWP-Community bei!

Chatte mit uns über WordPress, Webentwicklung und teile Erfahrungen mit anderen Entwickler*innen.

- Mitglieder
- online
Beitreten

Wir verwenden Cookies, um Ihre Erfahrung zu verbessern. Wenn Sie fortfahren, stimmen Sie unserer Cookie-Richtlinie zu.