{"id":192,"date":"2026-01-19T00:00:00","date_gmt":"2026-01-18T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/fr\/jquery-4-0-0-premiere-major-depuis-pres-de-10-ans-et-ce-que-ca-change-vraiment\/"},"modified":"2026-01-19T00:00:00","modified_gmt":"2026-01-18T23:00:00","slug":"jquery-4-0-0-premiere-major-depuis-pres-de-10-ans-et-ce-que-ca-change-vraiment","status":"publish","type":"post","link":"https:\/\/helloblog.io\/fr\/jquery-4-0-0-premiere-major-depuis-pres-de-10-ans-et-ce-que-ca-change-vraiment\/","title":{"rendered":"jQuery 4.0.0 : la premi\u00e8re major depuis pr\u00e8s de 10 ans, et ce que \u00e7a change vraiment"},"content":{"rendered":"\n<p>Le 14 janvier 2006, John Resig pr\u00e9sentait jQuery au BarCamp de New York. Vingt ans plus tard, l\u2019\u00e9quipe jQuery publie la version finale <strong>jQuery 4.0.0<\/strong> (annonce du 17 janvier 2026), apr\u00e8s un cycle de d\u00e9veloppement long et plusieurs pr\u00e9-releases. C\u2019est la premi\u00e8re version majeure depuis presque une d\u00e9cennie : il y a donc des <em>breaking changes<\/em>, mais l\u2019\u00e9quipe s\u2019attend \u00e0 ce que la plupart des projets puissent migrer avec peu d\u2019ajustements.<\/p>\n\n\n\n<p>L\u2019id\u00e9e g\u00e9n\u00e9rale de cette major est assez claire : enlever du code legacy, supprimer des APIs d\u00e9j\u00e0 d\u00e9pr\u00e9ci\u00e9es, nettoyer certains param\u00e8tres internes expos\u00e9s \u00ab par accident \u00bb dans des fonctions publiques, et arr\u00eater quelques comportements \u00ab magiques \u00bb devenus trop complexes \u00e0 maintenir.<\/p>\n\n\n\n<p>Pour accompagner la transition, deux outils sont mis en avant : le <strong>guide de migration<\/strong> <a href=\"https:\/\/jquery.com\/upgrade-guide\/4.0\/\">https:\/\/jquery.com\/upgrade-guide\/4.0\/<\/a> et la nouvelle release du <strong>plugin jQuery Migrate<\/strong> <a href=\"https:\/\/github.com\/jquery\/jquery-migrate\/\">https:\/\/github.com\/jquery\/jquery-migrate\/<\/a>. Et si tu tombes sur un souci en upgrade, le canal recommand\u00e9 reste les issues GitHub : <a href=\"https:\/\/github.com\/jquery\/jquery\/issues\">https:\/\/github.com\/jquery\/jquery\/issues<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Disponibilit\u00e9 : CDN officiel et npm (les CDN tiers suivront)<\/h2>\n\n\n\n<p>jQuery 4.0.0 est disponible sur le <strong>CDN officiel<\/strong> (et comme d\u2019habitude aussi via <strong>npm<\/strong>). Les CDN tiers devraient se mettre \u00e0 jour, mais leurs d\u00e9lais restent ind\u00e9pendants de l\u2019\u00e9quipe jQuery.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fin du support IE<11 (IE11 vis\u00e9 en deux \u00e9tapes)<\/h2>\n\n\n\n<p>Premier point visible : <strong>jQuery 4.0 supprime le support d\u2019IE 10 et plus anciens<\/strong>. La question \u00ab pourquoi pas IE11 ? \u00bb revient souvent : l\u2019\u00e9quipe explique proc\u00e9der par \u00e9tapes, et annonce que la prochaine \u00e9tape &#8211; la fin d\u2019IE11 &#8211; est pr\u00e9vue pour <strong>jQuery 5.0<\/strong> (voir le PR mentionn\u00e9 : <a href=\"https:\/\/github.com\/jquery\/jquery\/pull\/5077\">https:\/\/github.com\/jquery\/jquery\/pull\/5077<\/a>).<\/p>\n\n\n\n<p>Dans la m\u00eame logique, jQuery 4.0 arr\u00eate aussi le support d\u2019autres navigateurs tr\u00e8s anciens : <strong>Edge Legacy<\/strong>, les versions <strong>iOS<\/strong> plus anciennes que les <strong>3 derni\u00e8res<\/strong>, les versions <strong>Firefox<\/strong> plus anciennes que les <strong>2 derni\u00e8res<\/strong> (hors <strong>Firefox ESR<\/strong>), ainsi que <strong>Android Browser<\/strong>. L\u2019annonce pr\u00e9cise qu\u2019aucun changement ne devrait \u00eatre requis c\u00f4t\u00e9 code ; mais si tu dois imp\u00e9rativement supporter ces navigateurs, il faut rester sur <strong>jQuery 3.x<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Trusted Types + CSP : jQuery se met au niveau des politiques modernes<\/h2>\n\n\n\n<p>jQuery 4.0 ajoute le support des <strong>Trusted Types<\/strong> (m\u00e9canisme de s\u00e9curit\u00e9 c\u00f4t\u00e9 navigateur) pour que du HTML encapsul\u00e9 en <strong>TrustedHTML<\/strong> (cf. MDN) puisse \u00eatre fourni aux m\u00e9thodes de manipulation jQuery sans violer la directive CSP <code>require-trusted-types-for<\/code>. R\u00e9f\u00e9rence cit\u00e9e dans l\u2019annonce : <a href=\"https:\/\/twitter.com\/kkotowicz\/status\/1445713282128515074\">https:\/\/twitter.com\/kkotowicz\/status\/1445713282128515074<\/a> et l\u2019API <code>TrustedHTML<\/code> : <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/TrustedHTML\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/TrustedHTML<\/a>.<\/p>\n\n\n\n<p>Dans la continuit\u00e9 \u00ab CSP-friendly \u00bb, l\u2019\u00e9quipe rappelle qu\u2019une partie des requ\u00eates AJAX utilisait d\u00e9j\u00e0 des balises <code>&lt;script&gt;<\/code> pour conserver certains attributs comme <code>crossdomain<\/code>, mais que jQuery a ensuite bascul\u00e9 <strong>la plupart des chargements asynchrones de scripts<\/strong> vers des <code>&lt;script&gt;<\/code> tags afin d\u2019\u00e9viter les erreurs CSP li\u00e9es \u00e0 l\u2019ex\u00e9cution d\u2019inline scripts. Le changement est trac\u00e9 ici : <a href=\"https:\/\/github.com\/jquery\/jquery\/pull\/4763\">https:\/\/github.com\/jquery\/jquery\/pull\/4763<\/a>.<\/p>\n\n\n\n<p>Il reste n\u00e9anmoins quelques cas o\u00f9 un <strong>XHR<\/strong> est encore utilis\u00e9 pour des requ\u00eates asynchrones de scripts, notamment quand l\u2019option <code>&quot;headers&quot;<\/code> est pass\u00e9e (l\u2019annonce recommande d\u2019utiliser <code>scriptAttrs<\/code> \u00e0 la place). Mais, quand c\u2019est possible, jQuery 4.0 privil\u00e9gie d\u00e9sormais la balise <code>&lt;script&gt;<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le code source jQuery passe aux ES modules (adieu AMD c\u00f4t\u00e9 source)<\/h2>\n\n\n\n<p>Changement structurel majeur : le code source de la branche <code>main<\/code> a migr\u00e9 de <strong>AMD<\/strong> (format historiquement associ\u00e9 \u00e0 RequireJS) vers les <strong>ES modules (ESM)<\/strong>. R\u00e9f\u00e9rences : AMD expliqu\u00e9 ici <a href=\"https:\/\/requirejs.org\/docs\/whyamd.html\">https:\/\/requirejs.org\/docs\/whyamd.html<\/a> et PR de migration <a href=\"https:\/\/github.com\/jquery\/jquery\/pull\/4541\">https:\/\/github.com\/jquery\/jquery\/pull\/4541<\/a>.<\/p>\n\n\n\n<p>Concr\u00e8tement, jQuery publiait d\u00e9j\u00e0 ses sources sur npm et GitHub, mais elles n\u2019\u00e9taient pas importables directement sous forme de modules sans <strong>RequireJS<\/strong>, qui servait aussi d\u2019outil de build. D\u00e9sormais, le packaging passe par <strong>Rollup<\/strong> (pr\u00e9sentation : <a href=\"https:\/\/rollupjs.org\/introduction\/\">https:\/\/rollupjs.org\/introduction\/<\/a>), et les tests sont ex\u00e9cut\u00e9s sp\u00e9cifiquement sur les modules ESM. Le r\u00e9sultat : une compatibilit\u00e9 plus naturelle avec les toolchains modernes, et la possibilit\u00e9 de fonctionner via <code>&lt;script type=module&gt;<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">APIs d\u00e9pr\u00e9ci\u00e9es supprim\u00e9es : ce qui dispara\u00eet en 4.0<\/h2>\n\n\n\n<p>jQuery 4.0 retire une s\u00e9rie d\u2019APIs d\u00e9pr\u00e9ci\u00e9es depuis plusieurs versions. Certaines \u00e9taient destin\u00e9es \u00e0 l\u2019interne, d\u2019autres ont aujourd\u2019hui des \u00e9quivalents natifs dans tous les navigateurs encore support\u00e9s. Liste des fonctions supprim\u00e9es :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>jQuery.isArray<\/code><\/li>\n\n\n<li><code>jQuery.parseJSON<\/code><\/li>\n\n\n<li><code>jQuery.trim<\/code><\/li>\n\n\n<li><code>jQuery.type<\/code><\/li>\n\n\n<li><code>jQuery.now<\/code><\/li>\n\n\n<li><code>jQuery.isNumeric<\/code><\/li>\n\n\n<li><code>jQuery.isFunction<\/code><\/li>\n\n\n<li><code>jQuery.isWindow<\/code><\/li>\n\n\n<li><code>jQuery.camelCase<\/code><\/li>\n\n\n<li><code>jQuery.nodeName<\/code><\/li>\n\n\n<li><code>jQuery.cssNumber<\/code><\/li>\n\n\n<li><code>jQuery.cssProps<\/code><\/li>\n\n\n<li><code>jQuery.fx.interval<\/code><\/li>\n\n<\/ul>\n\n\n\n<p>L\u2019\u00e9quipe recommande d\u2019utiliser les \u00e9quivalents natifs tels que <code>Array.isArray()<\/code>, <code>JSON.parse()<\/code>, <code>String.prototype.trim()<\/code> et <code>Date.now()<\/code>.<\/p>\n\n\n\n<p>Un effet collat\u00e9ral positif : la suppression de ces APIs, combin\u00e9e \u00e0 la suppression du code sp\u00e9cifique aux vieux IE, r\u00e9duit la taille de jQuery de <strong>plus de 3 kB en gzip<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nettoyage du prototype : push\/sort\/splice retir\u00e9s<\/h2>\n\n\n\n<p>Autre breaking change : le prototype jQuery exposait depuis longtemps des m\u00e9thodes de type Array qui ne se comportaient pas comme les m\u00e9thodes jQuery, et qui \u00e9taient con\u00e7ues pour un usage interne : <code>push<\/code>, <code>sort<\/code> et <code>splice<\/code>. Elles sont d\u00e9sormais <strong>supprim\u00e9es du prototype jQuery<\/strong>.<\/p>\n\n\n\n<p>Si tu les utilisais directement (ex. <code>$elems.push(elem)<\/code>), l\u2019\u00e9quivalent donn\u00e9 est d\u2019appeler les m\u00e9thodes natives d\u2019Array en for\u00e7ant le <code>this<\/code> :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ Avant (\u00e0 \u00e9viter en jQuery 4.0)\n\/\/ $elems.push( elem )\n\n\/\/ Apr\u00e8s\n[].push.call( $elems, elem );\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#6A737D\">\/\/ Avant (\u00e0 \u00e9viter en jQuery 4.0)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\">\/\/ $elems.push( elem )<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\">\/\/ Apr\u00e8s<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">[].push.<\/span><span style=\"color:#B392F0\">call<\/span><span style=\"color:#E1E4E8\">( $elems, elem );<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c9v\u00e9nements focus\/blur : l\u2019ordre suit d\u00e9sormais la spec W3C<\/h2>\n\n\n\n<p>Pendant longtemps, les navigateurs n\u2019\u00e9taient pas d\u2019accord sur l\u2019ordre des \u00e9v\u00e9nements de focus et blur (focusin, focusout, focus, blur). Les versions modernes des navigateurs support\u00e9s par jQuery 4.0 convergent maintenant vers un ordre commun\u2026 qui n\u2019est pas celui que jQuery avait rendu \u00ab stable \u00bb historiquement. C\u2019est donc un breaking change.<\/p>\n\n\n\n<p>\u00c0 partir de jQuery 4.0, jQuery n\u2019override plus le comportement natif. R\u00e9sultat : tous les navigateurs sauf IE suivent la spec W3C actuelle, dans cet ordre :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>blur<\/li>\n\n\n<li>focusout<\/li>\n\n\n<li>focus<\/li>\n\n\n<li>focusin<\/li>\n\n<\/ol>\n\n\n\n<p>\u00c0 titre de comparaison, l\u2019ordre utilis\u00e9 par jQuery dans les versions pr\u00e9c\u00e9dentes \u00e9tait : <code>focusout<\/code>, <code>blur<\/code>, <code>focusin<\/code>, <code>focus<\/code>. D\u00e9tail int\u00e9ressant not\u00e9 dans l\u2019annonce : le seul navigateur \u00e0 suivre l\u2019ancienne spec W3C (avant la mise \u00e0 jour de 2023) \u00e9tait Internet Explorer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Slim build : encore plus l\u00e9ger, sans Deferreds ni Callbacks<\/h2>\n\n\n\n<p>Le build <strong>slim<\/strong> r\u00e9tr\u00e9cit encore en jQuery 4.0.0, notamment avec la suppression de <strong>Deferreds<\/strong> et <strong>Callbacks<\/strong> (environ <strong>19,5 kB gzip<\/strong> selon l\u2019annonce). Les Deferreds supportaient depuis longtemps la spec <strong>Promises\/A+<\/strong> (<a href=\"https:\/\/promisesaplus.com\/\">https:\/\/promisesaplus.com\/<\/a>), donc dans beaucoup de cas tu peux migrer vers les <strong>Promises natives<\/strong>.<\/p>\n\n\n\n<p>Attention au d\u00e9tail important : les Promises natives sont disponibles dans tous les navigateurs support\u00e9s par jQuery\u2026 <strong>sauf IE11<\/strong>. Si tu dois supporter IE11, l\u2019annonce recommande soit d\u2019utiliser le build principal (non-slim), soit d\u2019ajouter un polyfill de Promises natives.<\/p>\n\n\n\n<p>L\u2019\u00e9quipe rappelle aussi la philosophie du slim : parfois tu n\u2019as pas besoin d\u2019AJAX, ou tu pr\u00e9f\u00e8res une lib d\u00e9di\u00e9e ; parfois les animations se font plus simplement via CSS + classes ; et comme la performance de chargement n\u2019est plus aussi souvent une contrainte critique aujourd\u2019hui, le slim reste surtout un choix d\u2019assemblage. Il reste n\u00e9anmoins environ <strong>8 kB gzip<\/strong> plus petit que le build complet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00e9l\u00e9chargement : liens directs et installation npm<\/h2>\n\n\n\n<p>Les fichiers sont disponibles via le CDN jQuery, avec des liens directs :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.js<\/li>\n\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.min.js<\/li>\n\n<\/ul>\n\n\n\n<p>Installation via npm :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>npm install jquery@4.0.0\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">npm<\/span><span style=\"color:#9ECBFF\"> install<\/span><span style=\"color:#9ECBFF\"> jquery@4.0.0<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Slim build : liens directs<\/h3>\n\n\n\n<p>Les versions slim (sans certains modules) sont aussi sur le CDN et dans le package npm :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.slim.js<\/li>\n\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.slim.min.js<\/li>\n\n<\/ul>\n\n\n\n<p>Les mises \u00e0 jour sont annonc\u00e9es comme d\u00e9j\u00e0 disponibles en version courante sur <strong>npm<\/strong> et <strong>Bower<\/strong>. Pour un panorama de toutes les m\u00e9thodes d\u2019obtention, la page officielle est : <a href=\"https:\/\/jquery.com\/download\/\">https:\/\/jquery.com\/download\/<\/a>. Les CDN publics re\u00e7oivent leurs copies \u00ab aujourd\u2019hui \u00bb d\u2019apr\u00e8s l\u2019annonce, avec un d\u00e9lai de quelques jours possible avant publication ; en attendant, le CDN officiel est la voie la plus directe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anniversaire, remerciements, et photo de r\u00e9union<\/h2>\n\n\n\n<p>La release s\u2019inscrit dans un contexte symbolique : les 20 ans de jQuery. L\u2019\u00e9quipe mentionne une r\u00e9union \u00e0 Dallas (avec John Resig en visio via Zoom) et publie une photo de groupe.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1804\" height=\"1359\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited.jpeg\" alt=\"Photo de groupe de la r\u00e9union des contributeurs jQuery \u00e0 Dallas\" class=\"wp-image-191\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited.jpeg 1804w, https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited-300x226.jpeg 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited-1024x771.jpeg 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited-768x579.jpeg 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited-1536x1157.jpeg 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/4\/2026\/01\/jquery-reunion-group-edited-400x301.jpeg 400w\" sizes=\"auto, (max-width: 1804px) 100vw, 1804px\" \/><figcaption class=\"wp-element-caption\">R\u00e9union d\u2019anniversaire des 20 ans : contributeurs et \u00e9quipe jQuery r\u00e9unis \u00e0 Dallas, avec John Resig pr\u00e9sent en visioconf\u00e9rence. \u2014 <em>Forr\u00e1s: blog.jquery.com (The jQuery Foundation)<\/em><\/figcaption><\/figure>\n\n\n\n<p>L\u2019annonce remercie explicitement les personnes ayant contribu\u00e9 via patches, bug reports ou tests, dont : Alex, Ahmed S. El-Afifi, fecore1, Dallas Fraser, Richard Gibson, Micha\u0142 Go\u0142\u0119biowski-Owczarek, Pierre Grimaud, Gabriela Gutierrez, Jonathan, Necmettin Karakaya, Anders Kaseorg, Wonseop Kim, Simon Legner, Shashanka Nataraj, Pat O&#8217;Callaghan, Christian Oliff, Dimitri Papadopoulos Orfanos, Wonhyoung Park, Bruno PIERRE, Baoshuo Ren, Beatriz Rezener, Sean Robinson, Ed Sanders, Timo Tijhof, Tom, Christian Wenz, ygj6, ainsi que l\u2019ensemble de l\u2019\u00e9quipe jQuery.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog complet et points techniques (tous les items list\u00e9s)<\/h2>\n\n\n\n<p>Le changelog complet est disponible ici : <strong>4.0.0<\/strong> <a href=\"https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1...4.0.0\">https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1&#8230;4.0.0<\/a>. Ci-dessous, les items list\u00e9s dans l\u2019annonce, par rubrique.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajax<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Don&#8217;t treat array data as binary (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/992a1911d0b6195012edc25fd5a48810d4be64b5\">992a1911<\/a>)<\/li>\n\n\n<li>Allow <code>processData: true<\/code> even for binary data (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ce264e0789116e37fe371503537a217c038dfae8\">ce264e07<\/a>)<\/li>\n\n\n<li>Support binary data (including FormData) (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a7ed9a7b6364273b1b964fd2cf9691dec2cbec6b\">a7ed9a7b<\/a>)<\/li>\n\n\n<li>Support <code>headers<\/code> for script transport even when cross-domain (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5142\">#5142<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/6d1364431b63b0d3bbe1c5fd604131f9db453396\">6d136443<\/a>)<\/li>\n\n\n<li>Support <code>null<\/code> as success functions in <code>jQuery.get<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4989\">#4989<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/74978b7e892537559850cda7332bdab8106e6354\">74978b7e<\/a>)<\/li>\n\n\n<li>Don&#8217;t auto-execute scripts unless dataType provided (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4822\">#4822<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/025da4dd343e6734f3d3c1b4785b1548498115d8\">025da4dd<\/a>)<\/li>\n\n\n<li>Make responseJSON work for erroneous same-domain JSONP requests (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/68b4ec59c8f290d680e9db4bc980655660817dd1\">68b4ec59<\/a>)<\/li>\n\n\n<li>Execute JSONP error script responses (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4771\">#4771<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a1e619b03a557b47c3e26a5e74af12b63a0d5e73\">a1e619b0<\/a>)<\/li>\n\n\n<li>Avoid CSP errors in the script transport for async requests (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3969\">#3969<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/07a8e4a177550025c1a08d7ac754839733943f55\">07a8e4a1<\/a>)<\/li>\n\n\n<li>Drop the json to jsonp auto-promotion logic (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/1799\">#1799<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3376\">#3376<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e7b3bc488d01d584262e12a7c5c25f935d0d034b\">e7b3bc48<\/a>)<\/li>\n\n\n<li>Overwrite s.contentType with content-type header value, if any (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4119\">#4119<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/7fb90a6beaeffe16699800f73746748f6a5cc2de\">7fb90a6b<\/a>)<\/li>\n\n\n<li>Deprecate AJAX event aliases, inline event\/alias into deprecated (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/23d53928f383b0e7440bf4b08b7524e6af232fad\">23d53928<\/a>)<\/li>\n\n\n<li>Do not execute scripts for unsuccessful HTTP responses (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4250\">#4250<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/50871a5a85cc802421b40cc67e2830601968affe\">50871a5a<\/a>)<\/li>\n\n\n<li>Simplify jQuery.ajaxSettings.xhr (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/1967\">#1967<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/abdc89ac2e581392b800c0364e0f5f2b6a82cdc6\">abdc89ac<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Attributes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Make <code>.attr( name, false )<\/code> remove for all non-ARIA attrs (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5388\">#5388<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/063831b6378d518f9870ec5c4f1e7d5d16e04f36\">063831b6<\/a>)<\/li>\n\n\n<li>Shave off a couple of bytes (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/b40a4807b604efbde51faf075d11e25441af1990\">b40a4807<\/a>)<\/li>\n\n\n<li>Don&#8217;t stringify attributes in the setter (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4948\">#4948<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4250b628783d7bfa92ec6c5550c6e4b22fab6034\">4250b628<\/a>)<\/li>\n\n\n<li>Drop the <code>toggleClass(boolean|undefined)<\/code> signature (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3388\">#3388<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a4421101fd6d9d7b0550210f8e8690641733dd9a\">a4421101<\/a>)<\/li>\n\n\n<li>Refactor val(): don&#8217;t strip carriage return, isolate IE workarounds (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ff2819911da6cbbed5ee42c35d695240f06e65e3\">ff281991<\/a>)<\/li>\n\n\n<li>Don&#8217;t set the type attr hook at all outside of IE (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9e66fe9acf0ef27681f5a21149fc61678f791641\">9e66fe9a<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CSS<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Fix dimensions of table <code>&lt;col&gt;<\/code> elements (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5628\">#5628<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/eca2a56457e1c40c071aeb3ac87efeb8bbb8013e\">eca2a564<\/a>)<\/li>\n\n\n<li>Drop the cache in finalPropName (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/640d5825df5ff223560c5690f1a268681c32f9fa\">640d5825<\/a>)<\/li>\n\n\n<li>Tests: Fix tests &#038; support tests under CSS Zoom (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5489\">#5489<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/071f6dba6bd1d8db3f36ce4694aab5ff437b9e36\">071f6dba<\/a>)<\/li>\n\n\n<li>Fix reliableTrDimensions support test for initially hidden iframes (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/b1e66a5faaf46ffcbcc27c79a9a224aaf851a987\">b1e66a5f<\/a>)<\/li>\n\n\n<li>Selector: Align with 3.x, remove the outer <code>selector.js<\/code> wrapper (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/53cf7244da2a2040333335c36e435b1c12efdff9\">53cf7244<\/a>)<\/li>\n\n\n<li>Make the reliableTrDimensions support test work with Bootstrap CSS (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5270\">#5270<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/65b85031fb5688361c077bc04e641e4b502671e1\">65b85031<\/a>)<\/li>\n\n\n<li>Make <code>offsetHeight( true )<\/code>, etc. include negative margins (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3982\">#3982<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/bce13b72c1753e16cc0db53ebf0f0456bdcf6b48\">bce13b72<\/a>)<\/li>\n\n\n<li>Return <code>undefined<\/code> for whitespace-only CSS variable values (#5120) (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/7eb0019640a5856c42b451551eb7f995d913eba9\">7eb00196<\/a>)<\/li>\n\n\n<li>Don&#8217;t trim whitespace of undefined custom property (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5105\">#5105<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ed306c0261ab63746040e5d58bb4477c3069a427\">ed306c02<\/a>)<\/li>\n\n\n<li>Skip falsy values in <code>addClass( array )<\/code>, compress code (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4998\">#4998<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a338b407f2479f82df40635055effc163835183f\">a338b407<\/a>)<\/li>\n\n\n<li>Justify use of rtrim on CSS property values (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/655c0ed5e204b1f6427e09d615a49586a7bc84eb\">655c0ed5<\/a>)<\/li>\n\n\n<li>Trim whitespace surrounding CSS Custom Properties values (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4926\">#4926<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/efadfe991a5c287af561a9326bf1427d726c91c1\">efadfe99<\/a>)<\/li>\n\n\n<li>Include <code>show<\/code>, <code>hide<\/code> &#038; <code>toggle<\/code> methods in the jQuery slim build (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/297d18dd13f7b810ea5a4afeefa4cb15d9e16e16\">297d18dd<\/a>)<\/li>\n\n\n<li>Remove the opacity CSS hook (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/865469f5e60f55feb28469bb0a7526dd22f04b4e\">865469f5<\/a>)<\/li>\n\n\n<li>Workaround buggy getComputedStyle on table rows in IE\/Edge (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4490\">#4490<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/26415e081b318dbe1d46d2b7c30e05f14c339b75\">26415e08<\/a>)<\/li>\n\n\n<li>Don&#8217;t automatically add &#8220;px&#8221; to properties with a few exceptions (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/2795\">#2795<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/00a9c2e5f4c855382435cec6b3908eb9bd5a53b7\">00a9c2e5<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Core<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Remove obsolete workarounds, update support comments (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e2fe97b7f15cf5ee2e44566b381f7bf214e491b1\">e2fe97b7<\/a>)<\/li>\n\n\n<li>Switch <code>$.parseHTML<\/code> from <code>document.implementation<\/code> to <code>DOMParser<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/0e123509d529456ddf130abb97e6266b53f62c50\">0e123509<\/a>)<\/li>\n\n\n<li>Fix the exports setup to make bundlers work with ESM &#038; CommonJS (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5416\">#5416<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/60f11b58bfeece6b6d0189d7d19b61a4e1e61139\">60f11b58<\/a>)<\/li>\n\n\n<li>Add more info about named exports (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5f869590924b7dea6a16d176b18700939f4b5290\">5f869590<\/a>)<\/li>\n\n\n<li>Simplify code post browser support reduction (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/93ca49e6d1ac23fee33b3bc3b7f4d93dd1a25cb7\">93ca49e6<\/a>)<\/li>\n\n\n<li>Move the factory to separate exports (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/46f6e3da796ee9d28c7c1428793b72d66bcbb0b7\">46f6e3da<\/a>)<\/li>\n\n\n<li>Use named exports in <code>src\/<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5262\">#5262<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/f75daab09102a4dd5107deadb55d4a169f86254a\">f75daab0<\/a>)<\/li>\n\n\n<li>Fix regression in jQuery.text() on HTMLDocument objects (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5264\">#5264<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a75d6b52fad212820358e8ada3154f2f634e699b\">a75d6b52<\/a>)<\/li>\n\n\n<li>Selector: Move jQuery.contains from the selector to the core module (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/024d87195ac46690023e2b0b308d4406a8a5a27e\">024d8719<\/a>)<\/li>\n\n\n<li>Drop the root parameter of jQuery.fn.init (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/d2436df36a4b2ef556907e734a90771f0dbdbcaf\">d2436df3<\/a>)<\/li>\n\n\n<li>Don&#8217;t rely on splice being present on input (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9c6f64c7b51d50e334ef1183e2937ad77c0a68b0\">9c6f64c7<\/a>)<\/li>\n\n\n<li>Manipulation: Add basic TrustedHTML support (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4409\">#4409<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/de5398a6ad088dc006b46c6a870a2a053f4cd663\">de5398a6<\/a>)<\/li>\n\n\n<li>Report browser errors in parseXML (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4784\">#4784<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/8969732518470a7f8e654d5bc5be0b0076cb0b87\">89697325<\/a>)<\/li>\n\n\n<li>Make jQuery.isXMLDoc accept falsy input (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4782\">#4782<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/fd421097c56696e4c1c4a99c1aae44c59a722be4\">fd421097<\/a>)<\/li>\n\n\n<li>Drop support for Edge Legacy (i.e. non-Chromium Microsoft Edge) (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4568\">#4568<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e35fb62db4fb46f031056bb53e393982c03972a1\">e35fb62d<\/a>)<\/li>\n\n\n<li>Fire iframe script in its context, add doc param in globalEval (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4518\">#4518<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4592595b478be979141ce35c693dbc6b65647173\">4592595b<\/a>)<\/li>\n\n\n<li>Exclude callbacks &#038; deferred modules in the slim build as well (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/fbc44f52fe76e1b601da76a1d7f8ef27884c06da\">fbc44f52<\/a>)<\/li>\n\n\n<li>Migrate from AMD to ES modules \ud83c\udf89 (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/d0ce00cdfa680f1f0c38460bc51ea14079ae8b07\">d0ce00cd<\/a>)<\/li>\n\n\n<li>Use Array.prototype.flat where supported (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4320\">#4320<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9df4f1de12728b44a4b0f91748f12421008d9079\">9df4f1de<\/a>)<\/li>\n\n\n<li>Remove private copies of push, sort &#038; splice from the jQuery prototype (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/b59107f5d7451ac16a7c8755128719be6ec8bf12\">b59107f5<\/a>)<\/li>\n\n\n<li>Implement .even() &#038; .odd() to replace POS :even &#038; :odd (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/78420d427cf3734d9264405fcbe08b76be182a95\">78420d42<\/a>)<\/li>\n\n\n<li>Deprecate jQuery.trim (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4363\">#4363<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5ea5946094784f68437ef26d463dfcfbbbaff1f6\">5ea59460<\/a>)<\/li>\n\n\n<li>Remove IE-specific support tests, rely on document.documentMode (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4386\">#4386<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3527a3840585e6a359cd712591c9c57398357b9b\">3527a384<\/a>)<\/li>\n\n\n<li>Drop support for IE <11, iOS <11, Firefox <65, Android Browser &#038; PhantomJS (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3950\">#3950<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4299\">#4299<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/cf84696fd1d7fe314a11492606529b5a658ee9e3\">cf84696f<\/a>)<\/li>\n\n\n<li>Remove deprecated jQuery APIs (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4056\">#4056<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/58f0c00bed695f934bb205c6115e5fe99dd5c27b\">58f0c00b<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Data<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Refactor to reduce size (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/805cdb43fd02c3a5783c06b5ec2c9519be0682ab\">805cdb43<\/a>)<\/li>\n\n\n<li>Event:Manipulation: Prevent collisions with Object.prototype (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3256\">#3256<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9d76c0b163675505d1a901e5fe5249a2c55609bc\">9d76c0b1<\/a>)<\/li>\n\n\n<li>Separate data &#038; css\/effects camelCase implementations (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3355\">#3355<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/8fae21200e80647fec4389995c4879948d11ad66\">8fae2120<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Deferred<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Rename <code>getStackHook<\/code> to <code>getErrorHook<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5201\">#5201<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/258ca1ec6a373f85f7849308c967b7e6a993e6e7\">258ca1ec<\/a>)<\/li>\n\n\n<li>Respect source maps in jQuery.Deferred.exceptionHook (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3179\">#3179<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/0b9c5037f707a0b8e0dbb11776b690ae7dde7123\">0b9c5037<\/a>)<\/li>\n\n\n<li>Rename master to primary (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a32cf6324f8f2190e66a687e94be9687ebf840b7\">a32cf632<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Deprecated<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Define <code>.hover()<\/code> using non-deprecated methods (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/fd6ffc5eb2c12562f2656d2f33865448420252be\">fd6ffc5e<\/a>)<\/li>\n\n\n<li>Remove jQuery.trim (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/0b676ae12d20721e2df6f6f32f37f7302f8805bf\">0b676ae1<\/a>)<\/li>\n\n\n<li>Fix AMD parameter order (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/f810080e8e92278bb5288cba7cc0169481471780\">f810080e<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Dimensions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Add offset prop fallback to FF for unreliable TR dimensions (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4529\">#4529<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3bbbc11111840d6fd5160db13f2c1a9acb05c4c4\">3bbbc111<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Docs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Fix some minor issues in comments (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e4d4dd81bfb0c27a9c557746035738319253a30c\">e4d4dd81<\/a>)<\/li>\n\n\n<li>update herodevs link in README (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5695\">#5695<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/093e63f92a5843c2d73fd953454cc6307fe8025c\">093e63f9<\/a>)<\/li>\n\n\n<li>Align CONTRIBUTING.md with <code>3.x-stable<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/d92810614b53270a8f014db14022887ee3383fd5\">d9281061<\/a>)<\/li>\n\n\n<li>Update CONTRIBUTING.md (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4ef25b0de4a847f14ba2f88e309eaf759e035d78\">4ef25b0d<\/a>)<\/li>\n\n\n<li>add version support section to README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/cbc2bc1fd37bb6af5d2c60cf666265c4d438200f\">cbc2bc1f<\/a>)<\/li>\n\n\n<li>Update remaining HTTP URLs to HTTPS (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/7cdd8374234b77a3c70dd511a1b06066afb146bb\">7cdd8374<\/a>)<\/li>\n\n\n<li>Fix module links in the package README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ace646f6e83e653f666ba715c200739f1cbdba52\">ace646f6<\/a>)<\/li>\n\n\n<li>update watch task in CONTRIBUTING.md (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/77d6ad7172db3ae11573df7b322d410b161eb43e\">77d6ad71<\/a>)<\/li>\n\n\n<li>Fix typos found by codespell (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/620870a1af5287d29c77ec6d5f973116b23793a7\">620870a1<\/a>)<\/li>\n\n\n<li>remove stale gitter badge from readme (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/67cb1af7740a956e150e8d93266c4e601f55e8a4\">67cb1af7<\/a>)<\/li>\n\n\n<li>Remove the &#8220;Grunt build&#8221; section from the PR template (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/988a56847de301ce18a653f84b07c5af432a269f\">988a5684<\/a>)<\/li>\n\n\n<li>Remove stale badge from README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/bcd9c2bc3ddaa04f89f550681ca9c1ec5efc4328\">bcd9c2bc<\/a>)<\/li>\n\n\n<li>Update the README of the published package (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/edccabf10d37b57cbd4eeebc44f3acb67cb2739c\">edccabf1<\/a>)<\/li>\n\n\n<li>Remove git.io from a GitHub Actions comment (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/016872ffe03ab9107b1bc62fae674a4809c3b23f\">016872ff<\/a>)<\/li>\n\n\n<li>Update webpack website in README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/01819bc3bcc44282e5bb9301c3478d837d1e5152\">01819bc3<\/a>)<\/li>\n\n\n<li>add link to patchwelcome and help wanted issues (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/924b7ce825962bfe4c16e02eb411c7f66ee75a55\">924b7ce8<\/a>)<\/li>\n\n\n<li>add link to preview the new CLAs (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/683ceb8ff067ac53a7cb464ba1ec3f88e353e3f5\">683ceb8f<\/a>)<\/li>\n\n\n<li>Fix incorrect <code>trac-NUMBER<\/code> references (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/eb9ceb2facbeff1c66a41824bd0ac0c56d0c5c62\">eb9ceb2f<\/a>)<\/li>\n\n\n<li>remove expired links from old jquery source (#4997) (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ed066ac70270b4bb20b5717501d2d268ef144bd3\">ed066ac7<\/a>)<\/li>\n\n\n<li>Remove links to Web Archive from source (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4981\">#4981<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e24f2dcf3f6bda1a672502e0233c732065cbbe89\">e24f2dcf<\/a>)<\/li>\n\n\n<li>Replace <code>#NUMBER<\/code> Trac issue references with <code>trac-NUMBER<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5d5ea015114092c157311c4948f7cc3d8c8e7f8a\">5d5ea015<\/a>)<\/li>\n\n\n<li>Update the URL to the latest jQuery build in CONTRIBUTING.md (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9bdb16cd19097da67950a707baac3980bda873f3\">9bdb16cd<\/a>)<\/li>\n\n\n<li>Remove the CLA checkbox in the pull request template (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e124893132d7a979d7987f978e968a1f889348b6\">e1248931<\/a>)<\/li>\n\n\n<li>update irc to Libera and fix LAMP dead link (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/175db73ec7938e774d9e93d3afdfb35a24466b47\">175db73e<\/a>)<\/li>\n\n\n<li>Update Frequently Reported Issues in the GitHub issue template (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/7a6fae6a7e51ae30a9f3177e8639fbf523ed0915\">7a6fae6a<\/a>)<\/li>\n\n\n<li>Change JS Foundation mentions to OpenJS Foundation (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/11611967adf2bd9ff4304132f917629ec1134049\">11611967<\/a>)<\/li>\n\n\n<li>add SECURITY.md, show security email address (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/2ffe54ca53b4ba2de2012f83c3faf262c1003af9\">2ffe54ca<\/a>)<\/li>\n\n\n<li>Fix typos (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/1a7332ce83cdee7d6cd9d45c2a4b83067f53f14b\">1a7332ce<\/a>)<\/li>\n\n\n<li>Update the link to the jsdom repository (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a62309e01b3c76d2b73560ca666c454b7bbfcb77\">a62309e0<\/a>)<\/li>\n\n\n<li>Use https for hyperlinks in README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/73415da25d964ee31ec1804d55f5af0199a1378e\">73415da2<\/a>)<\/li>\n\n\n<li>Remove a mention of the event\/alias.js module from README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3edfa1bcdc50bca41ac58b2642b12f3feee03a3b\">3edfa1bc<\/a>)<\/li>\n\n\n<li>Update links to EdgeHTML issues to go through Web Archive (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/1dad1185e0b2ca2a13bf411558eda75fb2d4da88\">1dad1185<\/a>)<\/li>\n\n\n<li>direct users to GitHub docs for cloning the repo (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/f1c16de29689d2cfaf629f00d682148e99753509\">f1c16de2<\/a>)<\/li>\n\n\n<li>Change OS X to macOS in README (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5a3e0664d261422f11a78faaf101d70c73b3a5a8\">5a3e0664<\/a>)<\/li>\n\n\n<li>Update most URLs to HTTPS (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/f09d92100ffff6208211b200ed0cdc39bfd17fc3\">f09d9210<\/a>)<\/li>\n\n\n<li>Convert link to Homebrew from HTTP to HTTPS (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e0022f23144fd1dc6db86a5d8c18af47bc14f0f3\">e0022f23<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Effect<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Fix a unnecessary conditional statement in .stop() (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4374\">#4374<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/110802c7f22b677ef658963aa95ebdf5cb9c5573\">110802c7<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Effects<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Remove jQuery.fx.interval (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/6c2c7362fb18d3df7c2a7b13715c2763645acfcb\">6c2c7362<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Event<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Use <code>.preventDefault()<\/code> in beforeunload (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/7c123dec4b96e7c3ce5f5a78e828c8aa335bea98\">7c123dec<\/a>)<\/li>\n\n\n<li>Increase robustness of an inner native event in leverageNative (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5459\">#5459<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/527fb3dcf0dcde69302a741dfc61cbfa58e99eb0\">527fb3dc<\/a>)<\/li>\n\n\n<li>Avoid collisions between jQuery.event.special &#038; Object.prototype (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/bcaeb000b777c018ad5d18e01be5060caa8cb158\">bcaeb000<\/a>)<\/li>\n\n\n<li>Simplify the check for saved data in leverageNative (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/dfe212d5a1eed6b4a67d1cbd04ece09bbac33699\">dfe212d5<\/a>)<\/li>\n\n\n<li>Make trigger(focus\/blur\/click) work with native handlers (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5015\">#5015<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/6ad3651dbfea9e9bb56e608f72b4ef2f97bd4e70\">6ad3651d<\/a>)<\/li>\n\n\n<li>Simulate focus\/blur in IE via focusin\/focusout (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4856\">#4856<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4859\">#4859<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4950\">#4950<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ce60d31893deab7d3da592b5173e90b5d50e7732\">ce60d318<\/a>)<\/li>\n\n\n<li>Don&#8217;t break focus triggering after <code>.on(focus).off(focus)<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4867\">#4867<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e539bac79e666bba95bba86d690b4e609dca2286\">e539bac7<\/a>)<\/li>\n\n\n<li>Make focus re-triggering not focus the original element back (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4382\">#4382<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/dbcffb396c2db61ff96edc4162602e850797d61f\">dbcffb39<\/a>)<\/li>\n\n\n<li>Don&#8217;t crash if an element is removed on blur (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4417\">#4417<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5c2d08704e289dd2745bcb0557b35a9c0e6af4a4\">5c2d0870<\/a>)<\/li>\n\n\n<li>Remove the event.which shim (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/3235\">#3235<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/1a5fff4c169dbaa2df72c656868bcf60ed4413d0\">1a5fff4c<\/a>)<\/li>\n\n\n<li>remove jQuery.event.global (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/18db87172cffbe48b92e30b70249e304863a70f9\">18db8717<\/a>)<\/li>\n\n\n<li>Only attach events to objects that accept data &#8212; for real (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4397\">#4397<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/d5c505e35d8c74ce8e9d99731a1a7eab0e0d911c\">d5c505e3<\/a>)<\/li>\n\n\n<li>Stop shimming focusin &#038; focusout events (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4300\">#4300<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/8a741376937dfacf9f82b2b88f93b239fe267435\">8a741376<\/a>)<\/li>\n\n\n<li>Prevent leverageNative from registering duplicate dummy handlers (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/eb6c0a7c97b1b3cf00144de12d945c9c569f935c\">eb6c0a7c<\/a>)<\/li>\n\n\n<li>Fix handling of multiple async focus events (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4350\">#4350<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ddfa83766478268391bc9da96683fc0d4973fcfe\">ddfa8376<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Manipulation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Make jQuery.cleanData not skip elements during cleanup (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5214\">#5214<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3cad5c435aa2333c39baa55a8bceb2b6bf1e2721\">3cad5c43<\/a>)<\/li>\n\n\n<li>Generalize a test to support IE (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/88690ebfc8b5ef8b1e444326c664b590ecc0b888\">88690ebf<\/a>)<\/li>\n\n\n<li>Support $el.html(selfRemovingScript) (#5378) (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5377\">#5377<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/937923d9ee8dfd19008447b5059cbd13ee5a23ac\">937923d9<\/a>)<\/li>\n\n\n<li>Extract domManip to a separate file (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ee6e874075ba1fcd8f9e62cd1ee5c04f6518b6d6\">ee6e8740<\/a>)<\/li>\n\n\n<li>Don&#8217;t remove HTML comments from scripts (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4904\">#4904<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/2f8f39e457c32c454c50545b0fdaa1d7a4a2f8bd\">2f8f39e4<\/a>)<\/li>\n\n\n<li>Respect script crossorigin attribute in DOM manipulation (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4542\">#4542<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/15ae361485056b236a9484a185238f992806e1ff\">15ae3614<\/a>)<\/li>\n\n\n<li>Avoid concatenating strings in buildFragment (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9c98e4e86eda857ee063bc48adbc1a11bb5506ee\">9c98e4e8<\/a>)<\/li>\n\n\n<li>Make jQuery.htmlPrefilter an identity function (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/90fed4b453a5becdb7f173d9e3c1492390a1441f\">90fed4b4<\/a>)<\/li>\n\n\n<li>Selector: Use the nodeName util where possible to save size (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4504fc3d722dd029d861cb47aa65a5edc651c4d3\">4504fc3d<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Offset<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Increase search depth when finding the &#8216;real&#8217; offset parent (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/556eaf4a193287c306d163635cbb5f5c95a22a84\">556eaf4a<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Release<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>4.0.0 (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4f2fae08f23b54ce09322e62e73cce6161b8d3cb\">4f2fae08<\/a>)<\/li>\n\n\n<li>remove dist files from main branch (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/c838cfb5bb0c6cd17cfaa1dd83aca8d20589de99\">c838cfb5<\/a>)<\/li>\n\n\n<li>4.0.0-rc.2 (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/97525193735ed32c332f0dbaf2f782df8b1b949b\">97525193<\/a>)<\/li>\n\n\n<li>Update AUTHORS.txt (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/c128d5d8a8fd9e9b3dcd3efa493e71f6a1649bd8\">c128d5d8<\/a>)<\/li>\n\n\n<li>Fix release issues uncovered during the 4.0.0-rc.1 release (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a5b0c4318df748e5a0fe27d23820c60029d26b90\">a5b0c431<\/a>)<\/li>\n\n\n<li>remove dist files from main branch (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/9d06c6dd6f84bb0ae49e7c7445282ebb93b7b226\">9d06c6dd<\/a>)<\/li>\n\n\n<li>4.0.0-rc.1 (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/586182f35e818c318046dac1cbaa31ee7a07ee21\">586182f3<\/a>)<\/li>\n\n\n<li>Run <code>npm publish<\/code> in the post-release phase (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ff1f0eaaafd0dbcd4c063c3c557d9cee0a461f89d\">ff1f0eaa<\/a>)<\/li>\n\n\n<li>Only run browserless tests during the release (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/fb5ab0f546e0e25ccb2fb5feb3d51ca2ea743b06efc\">fb5ab0f5<\/a>)<\/li>\n\n\n<li>Temporarily disable running tests on release (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3f79644b72e928c529febc1aaee081a6c4b96be3\">3f79644b<\/a>)<\/li>\n\n\n<li>publish tmp\/release\/dist folder when releasing (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5658\">#5658<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/a865212dea22d44bf2bea3e2c618c4a25c63c6a6\">a865212d<\/a>)<\/li>\n\n\n<li>correct build date in verification; other improvements (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/53ad94f319930a5bf8cb9bd935ebd4e028741903\">53ad94f3<\/a>)<\/li>\n\n\n<li>remove dist files from main branch (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/be048a027d0581746f71df7c8eb3ce1d9bd10a40\">be048a02<\/a>)<\/li>\n\n\n<li>4.0.0-beta.2 (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/51fffe9f7395f86fb24c59115c9b98855c39fc07\">51fffe9f<\/a>)<\/li>\n\n\n<li>ensure builds have the proper version (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3e612aeeb3821c657989e67b43c9b715f5cd32e2\">3e612aee<\/a>)<\/li>\n\n\n<li>set preReleaseBase in config file (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/1fa8df5dbd5d84cf55882a38eb6e571abd0aa938\">1fa8df5d<\/a>)<\/li>\n\n\n<li>fix running pre\/post release scripts in windows (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5518b2da1816b379b573abc55ba92f02776a3486\">5518b2da<\/a>)<\/li>\n\n\n<li>update AUTHORS.txt (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/862e7a1882f3f737db7dde1b5ecda9766d61694a\">862e7a18<\/a>)<\/li>\n\n\n<li>migrate release process to release-it (<a href=\"https:\/\/github.com\/jquery\/jquery-release\/issues\/114\">jquery\/jquery-release#114<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/2646a8b07fcc2cf7cf384724f622eb0c27f9166c\">2646a8b0<\/a>)<\/li>\n\n\n<li>add factory files to release distribution (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5411\">#5411<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/1a324b0792ba8d032b89dd8bf78bbf5caa535367\">1a324b07<\/a>)<\/li>\n\n\n<li>use buildDefaultFiles directly and pass version (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/b507c8648f701acd1c48b3c38054ad38d76fd1ca\">b507c864<\/a>)<\/li>\n\n\n<li>copy dist-module folder as well (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/63767650b5b171b4671304fd2bb2f2890431929f\">63767650<\/a>)<\/li>\n\n\n<li>only published versioned files to cdn (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3a0ca684eb21d64a13d7591ce1891b1990e0339c\">3a0ca684<\/a>)<\/li>\n\n\n<li>remove scripts and dev deps from dist package.json (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/7eac932da7177104546abef595adf4429eb829b3\">7eac932d<\/a>)<\/li>\n\n\n<li>update build command in Release.generateArtifacts (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3b963a21662061e0f39ad90f146e73e2223c2b86\">3b963a21<\/a>)<\/li>\n\n\n<li>add support for md5 sums in windows (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/f088c36631df3d5dc98408debd147ea5d3618557\">f088c366<\/a>)<\/li>\n\n\n<li>remove the need to install grunt globally (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/b2bbaa36d4d37bd48f954ed3cdbd50d3461a523d\">b2bbaa36<\/a>)<\/li>\n\n\n<li>upgrade release dependencies (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/967af73203378db0cc3637adee85c442e246e05a\">967af732<\/a>)<\/li>\n\n\n<li>Remove an unused chalk dependency (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/bfb6897c558dfdccff7ac5fc377b08e806525be3\">bfb6897c<\/a>)<\/li>\n\n\n<li>Use an in-repository dist README fixture (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/358b769a00c3a09a8ec621b8dcb2d5e31b7da69a\">358b769a<\/a>)<\/li>\n\n\n<li>Update AUTHORS.txt (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/1b74660f730d34bf728094c33080ff406427f41e\">1b74660f<\/a>)<\/li>\n\n\n<li>update AUTHORS.txt (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/cf9fe0f6a104a0f527c7c3f441485c19e2b19c69\">cf9fe0f6<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Selector<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Remove the workaround for <code>:has<\/code>; test both on iPhone &#038; iPad (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/65e35450c9954173dc1ddd3576242a913d8efb88\">65e35450<\/a>)<\/li>\n\n\n<li>Properly deprecate <code>jQuery.expr[ &quot;:&quot; ]<\/code>\/<code>jQuery.expr.filters<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/329661fd538a07993a2fcfa2a75fdd7f5667f86c\">329661fd<\/a>)<\/li>\n\n\n<li>Make <code>selector.js<\/code> module depend on <code>attributes\/attr.js<\/code> (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5379\">#5379<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e06ff08849057cd099365bf43598c8952fe9956d\">e06ff088<\/a>)<\/li>\n\n\n<li>Eliminate <code>selector.js<\/code> depenencies from various modules (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/e8b7db4b0f1e1b8e08578641b30a92b955ccc4ec\">e8b7db4b<\/a>)<\/li>\n\n\n<li>Re-expose jQuery.find.{tokenize,select,compile,setDocument} (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5259\">#5259<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/338de3599039a3ba906214e656bcbe637430c37d\">338de359<\/a>)<\/li>\n\n\n<li>Stop relying on CSS.supports( &#8220;selector(&#8230;)&#8221; ) (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5194\">#5194<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/68aa2ef7571e2d9f91fad1aa9e5f956c04dc9ee9\">68aa2ef7<\/a>)<\/li>\n\n\n<li>Backport jQuery selection context logic to selector-native (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5185\">#5185<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/2e644e845051703775b35b358eec5d3608a9465f\">2e644e84<\/a>)<\/li>\n\n\n<li>Make selector lists work with <code>qSA<\/code> again (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5177\">#5177<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/09d988b774e7ff4acfb69c0cde2dab373559aaca\">09d988b7<\/a>)<\/li>\n\n\n<li>Implement the <code>uniqueSort<\/code> chainable method (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5166\">#5166<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/5266f23cf49c9329bddce4d4af6cb5fbbd1e0383\">5266f23c<\/a>)<\/li>\n\n\n<li>Re-introduce selector-native.js (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4c1171f2ed62584211250df0af8302d34c04621a\">4c1171f2<\/a>)<\/li>\n\n\n<li>Manipulation: Fix DOM manip within template contents (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5147\">#5147<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/3299236c898136dc1aa57dc5148811203e931895\">3299236c<\/a>)<\/li>\n\n\n<li>Drop support for legacy pseudos, test custom pseudos (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/8c7da22caeae8c2c3f7e9869d5f47414669f106c\">8c7da22c<\/a>)<\/li>\n\n\n<li>Use jQuery <code>:has<\/code> if <code>CSS.supports(selector(...))<\/code> non-compliant (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/5098\">#5098<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/d153c375e67f2c2dba82c2fb079c36b8d795e66a\">d153c375<\/a>)<\/li>\n\n\n<li>Remove the &#8220;a:enabled&#8221; workaround for Chrome <=77 (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/c1ee33aded44051b8f1288b59d2efdc68d0413cc\">c1ee33ad<\/a>)<\/li>\n\n\n<li>Make empty attribute selectors work in IE again (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4435\">#4435<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/05184cc448f4ed7715ddd6a5d724e167882415f1\">05184cc4<\/a>)<\/li>\n\n\n<li>Use shallow document comparisons in uniqueSort (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4441\">#4441<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/15750b0af270da07917b70457cf09bda97d3d935\">15750b0a<\/a>)<\/li>\n\n\n<li>Add a test for throwing on post-comma invalid selectors (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/6eee5f7f181f9ebf5aa428e96356667e3cf7ddbd\">6eee5f7f<\/a>)<\/li>\n\n\n<li>Make selectors with leading combinators use qSA again (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ed66d5a22b37425abf5b63c361f91340de89c994\">ed66d5a2<\/a>)<\/li>\n\n\n<li>Use shallow document comparisons to avoid IE\/Edge crashes (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4441\">#4441<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/aa6344baf87145ffc807a527d9c1fb03c96b1948\">aa6344ba<\/a>)<\/li>\n\n\n<li>reduce size, simplify setDocument (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/29a9544a4fb743491a42f827a6cf8627b7b99e0f\">29a9544a<\/a>)<\/li>\n\n\n<li>Leverage the :scope pseudo-class where possible (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4453\">#4453<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/df6a7f7f0f615149266b1a51064293b748b29900\">df6a7f7f<\/a>)<\/li>\n\n\n<li>Bring back querySelectorAll shortcut usage (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/cef4b73179b8d2a38cfd5e0730111cc80518311a\">cef4b731<\/a>)<\/li>\n\n\n<li>Inline Sizzle into the selector module (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/47835965bd100a3661d8299d8b769ceeb8b6ce48\">47835965<\/a>)<\/li>\n\n\n<li>Port Sizzle tests to jQuery (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/79b74e043a4ee737d44a95094ff1184e40bd5b16\">79b74e04<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Support<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>ensure display is set to block for the support div (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4832\">#4832<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/09f254361f1fe8a563b8a90fe6a4d269f4b11514\">09f25436<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Traversing<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Fix <code>contents()<\/code> on <code>&lt;object&gt;<\/code>s with children in IE (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/ccbd6b93424cbdbf86f07a86c2e55cbab497d7a3\">ccbd6b93<\/a>)<\/li>\n\n\n<li>Fix <code>contents()<\/code> on <code>&lt;object&gt;<\/code>s with children (<a href=\"https:\/\/github.com\/jquery\/jquery\/issues\/4384\">#4384<\/a>, <a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/4d865d96aa5aae91823c50020b5c19da79566811\">4d865d96<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c0 retenir avant de passer de jQuery 3.x \u00e0 4.0.0<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>V\u00e9rifie ton p\u00e9rim\u00e8tre de support navigateurs : IE10 et ant\u00e9rieurs, Edge Legacy, anciens iOS\/Firefox\/Android Browser ne sont plus dans la cible (reste sur 3.x si tu en as besoin).<\/li>\n\n\n<li>Si ton projet est strict sur la s\u00e9curit\u00e9 (CSP), les \u00e9volutions Trusted Types et le basculement vers des <code>&lt;script&gt;<\/code> tags pour les chargements asynchrones de scripts sont des changements structurants.<\/li>\n\n\n<li>Pr\u00e9vois une passe de nettoyage sur les APIs supprim\u00e9es (ex. <code>jQuery.trim<\/code>, <code>jQuery.isArray<\/code>, etc.) et remplace par les \u00e9quivalents natifs.<\/li>\n\n\n<li>Si tu relies du code sur l\u2019ordre des \u00e9v\u00e9nements focus\/blur, re-teste : l\u2019ordre suit maintenant la spec W3C (hors IE).<\/li>\n\n\n<li>Choisis ton build (complet vs slim) en fonction des modules n\u00e9cessaires et de la contrainte IE11 (Promises natives absentes).<\/li>\n\n\n<li>Appuie-toi sur le guide officiel et sur jQuery Migrate pour s\u00e9curiser l\u2019upgrade.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>R\u00e9f\u00e9rences \/ Sources<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/blog.jquery.com\/2026\/01\/17\/jquery-4-0-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery 4.0.0<\/a><\/li><li><a href=\"https:\/\/jquery.com\/upgrade-guide\/4.0\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery Upgrade Guide 4.0<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery-migrate\/\" target=\"_blank\" rel=\"noopener noreferrer\">jquery\/jquery-migrate<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1...4.0.0\" target=\"_blank\" rel=\"noopener noreferrer\">Full changelog: 4.0.0<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery\/pull\/5077\" target=\"_blank\" rel=\"noopener noreferrer\">jquery\/jquery pull request #5077<\/a><\/li><li><a href=\"https:\/\/twitter.com\/kkotowicz\/status\/1445713282128515074\" target=\"_blank\" rel=\"noopener noreferrer\">Trusted Types (tweet reference)<\/a><\/li><li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/TrustedHTML\" target=\"_blank\" rel=\"noopener noreferrer\">MDN Web Docs &#8211; TrustedHTML<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery\/pull\/4763\" target=\"_blank\" rel=\"noopener noreferrer\">jquery\/jquery pull request #4763<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery\/pull\/4541\" target=\"_blank\" rel=\"noopener noreferrer\">jquery\/jquery pull request #4541<\/a><\/li><li><a href=\"https:\/\/requirejs.org\/docs\/whyamd.html\" target=\"_blank\" rel=\"noopener noreferrer\">Why AMD? (RequireJS docs)<\/a><\/li><li><a href=\"https:\/\/rollupjs.org\/introduction\/\" target=\"_blank\" rel=\"noopener noreferrer\">Rollup Introduction<\/a><\/li><li><a href=\"https:\/\/promisesaplus.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Promises\/A+<\/a><\/li><li><a href=\"https:\/\/jquery.com\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery Download<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>jQuery f\u00eate ses 20 ans avec une vraie mise \u00e0 jour majeure : jQuery 4.0.0 modernise la base, coupe dans l\u2019h\u00e9ritage (dont IE<11) et durcit certains comportements. Voici les changements \u00e0 conna\u00eetre avant de migrer.\n<\/p>\n","protected":false},"author":14,"featured_media":190,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[87],"tags":[90,91,89,88,50],"class_list":["post-192","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-langages-de-programmation","tag-csp","tag-es-modules","tag-javascript","tag-jquery","tag-migration"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/comments?post=192"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/192\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/media\/190"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/media?parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/categories?post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/tags?post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}