{"id":158,"date":"2026-01-19T00:00:00","date_gmt":"2026-01-18T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/et\/jquery-4-0-0-on-kohal-mida-see-muudab-ja-kuidas-turvaliselt-uuendada\/"},"modified":"2026-01-19T00:00:00","modified_gmt":"2026-01-18T23:00:00","slug":"jquery-4-0-0-on-kohal-mida-see-muudab-ja-kuidas-turvaliselt-uuendada","status":"publish","type":"post","link":"https:\/\/helloblog.io\/et\/jquery-4-0-0-on-kohal-mida-see-muudab-ja-kuidas-turvaliselt-uuendada\/","title":{"rendered":"jQuery 4.0.0 on kohal: mida see p\u00e4riselt muudab ja kuidas turvaliselt uuendada"},"content":{"rendered":"\n<p>14. jaanuaril 2006 tutvustas John Resig New Yorgi BarCampil jQuery\u2019d. 20 aastat hiljem on jQuery tiim j\u00f5udnud v\u00e4lja <em>l\u00f5pliku<\/em> jQuery 4.0.0 v\u00e4ljalaskeni \u2013 esimene suurversioon pea 10 aasta jooksul. See on hea uudis k\u00f5igile, kellel on p\u00e4riselus endiselt p\u00e4ris palju jQuery\u2019d (ka WordPressi\/pluginate maailmas), aga see t\u00e4hendab ka \u00fcht: 4.0 toob kaasa <em>breaking changes<\/em> ja enne \u201clihtsalt versiooni t\u00f5stmist\u201d tasub detailid \u00fcle k\u00e4ia.<\/p>\n\n\n\n<p>jQuery 4.0.0 arendus oli pikk ning enne finaali n\u00e4gime mitut eelv\u00e4ljalaset. Tiimi fookus oli selgelt moderniseerimisel: p\u00e4randi maha l\u00f5ikamine, aastaid \u201cnii on alati olnud\u201d t\u00fc\u00fcpi erandite eemaldamine, ning paremini t\u00e4nap\u00e4evaste turvapoliitikatega sobitumine. Samas on s\u00f5num \u00fcsna praktiline: enamiku projektide jaoks peaks \u00fcleminek siiski olema tehtav v\u00e4ikeste muudatustega.<\/p>\n\n\n\n<p>\u00dcleminekut aitavad kaks ametlikku t\u00f6\u00f6riista\/ressurssi: <a href=\"https:\/\/jquery.com\/upgrade-guide\/4.0\/\">upgrade guide<\/a> ja <a href=\"https:\/\/github.com\/jquery\/jquery-migrate\/\">jQuery Migrate plugin release<\/a>. Kui uuenduse k\u00e4igus midagi katki l\u00e4heb, palub tiim probleemid raporteerida GitHubi issue trackerisse: <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\">Kuidas jQuery 4.0 k\u00e4tte saada (CDN, npm)<\/h2>\n\n\n\n<p>jQuery 4.0.0 on saadaval nii jQuery enda CDN-is kui ka npm-is. Kolmandate osapoolte CDN-id (nt erinevad \u201cpublic CDN\u201d-id) j\u00f5uavad tavaliselt j\u00e4rele, aga nende v\u00e4ljalaske ajakava jQuery tiim ei kontrolli \u2013 seega v\u00f5ib seal olla v\u00e4ike viide.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>CDN (t\u00e4isversioon): https:\/\/code.jquery.com\/jquery-4.0.0.js<\/li>\n\n\n<li>CDN (min): https:\/\/code.jquery.com\/jquery-4.0.0.min.js<\/li>\n\n\n<li>npm: <code>npm install jquery@4.0.0<\/code><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Slim build (kergem jQuery)<\/h3>\n\n\n\n<p>jQuery 4.0.0-ga on slim build veel v\u00e4iksem. M\u00f5te on lihtne: kui sul pole vaja ajax\u2019i v\u00f5i kasutad eraldi ajax-teeki, animatsioonid teed CSS-i ja class\u2019ide abil ning (peaaegu) k\u00f5igis toetatud brauserites on native Promise olemas, siis saab jQuery\u2019st v\u00e4lja j\u00e4tta terve port mooduleid.<\/p>\n\n\n\n<p>Slim build\u2019ist on 4.0.0-s eemaldatud <em>Deferreds<\/em> ja <em>Callbacks<\/em> ning tulemuseks on umbes <strong>19.5k bytes gzipped<\/strong>. Deferred on ajalooliselt toetanud <a href=\"https:\/\/promisesaplus.com\/\">Promises A+ standardit<\/a>, seega enamikes kohtades saab liikuda native Promise\u2019i peale. Deferred\u2019il on siiski lisav\u00f5imekusi, mida native Promise ei paku, kuid suurem osa kasutusest on migreeritav Promise meetoditega.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Kui pead toetama IE11<\/h4>\n\n\n<p>Native Promise ei ole jQuery 4.0 toetatud brauseritest saadaval IE11-s. Kui IE11 on sul endiselt n\u00f5ue, kasuta pigem jQuery p\u00f5hiversiooni (mitte slim) v\u00f5i lisa native Promise polyfill.<\/p>\n\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>CDN (slim): https:\/\/code.jquery.com\/jquery-4.0.0.slim.js<\/li>\n\n\n<li>CDN (slim min): https:\/\/code.jquery.com\/jquery-4.0.0.slim.min.js<\/li>\n\n<\/ul>\n\n\n\n<p>jQuery tiim m\u00e4rgib, et v\u00e4rskendused on juba \u201ccurrent versions\u201d nii npm-is kui ka Boweris. K\u00f5ik ametlikud hankimisviisid: https:\/\/jquery.com\/download\/.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Suurimad muudatused jQuery 4.0.0-s<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) IE < 11 tugi eemaldati (IE10 ja vanemad)<\/h3>\n\n\n\n<p>jQuery 4.0 j\u00e4tab maha <strong>IE10 ja vanemad<\/strong>. Paljud k\u00fcsivad loogiliselt: miks mitte ka IE11? Tiimi plaan on teha see etappide kaupa ning j\u00e4rgmine samm \u2013 IE11 toe eemaldamine \u2013 on plaanitud <strong>jQuery 5.0<\/strong> juurde (viide: https:\/\/github.com\/jquery\/jquery\/pull\/5077). Praegu eemaldati kood, mis oli spetsiaalselt vajalik IE versioonidele, mis on vanemad kui 11.<\/p>\n\n\n\n<p>Lisaks l\u00f5igati \u00e4ra tugi tervele reale v\u00e4ga vanadele brauseritele: <strong>Edge Legacy<\/strong>, <strong>iOS versioonid varasemad kui viimased 3<\/strong>, <strong>Firefox versioonid varasemad kui viimased 2<\/strong> (v.a Firefox ESR), ning <strong>Android Browser<\/strong>. Tiimi s\u00f5nul ei peaks see n\u00f5udma sinu koodis muudatusi. Kui aga sul on kohustus m\u00f5nda neist brauseritest toetada, siis praktiline soovitus on j\u00e4\u00e4da <strong>jQuery 3.x<\/strong> peale.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Trusted Types ja CSP: v\u00e4hem XSS-peavalu, v\u00e4hem CSP vigu<\/h3>\n\n\n\n<p>jQuery 4.0 lisab toe <strong>Trusted Types<\/strong>-ile \u2013 see on brauseri turvamehhanism, mis aitab XSS-i riski v\u00e4hendada, kui kasutad ranget Content Security Policy\u2019t. Konkreetsemalt: kui HTML on pakitud <strong>TrustedHTML<\/strong> objekti (MDN: https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/TrustedHTML), siis saab seda kasutada jQuery manipuleerimismeetodite sisendina nii, et see ei rikuks <code>require-trusted-types-for<\/code> CSP direktiivi.<\/p>\n\n\n\n<p>Sellega koos muudeti ka k\u00e4itumist as\u00fcnkroonsete script request\u2019idega: varem kasutati osadel juhtudel <code>&lt;script&gt;<\/code> tag\u2019i, et s\u00e4ilitada atribuute nagu <code>crossdomain<\/code>, n\u00fc\u00fcd on tiim <em>enamiku as\u00fcnkroonsete script request\u2019ide<\/em> puhul liikunud teadlikult <code>&lt;script&gt;<\/code> tag\u2019i peale (PR: https:\/\/github.com\/jquery\/jquery\/pull\/4763), et v\u00e4ltida CSP vigu, mida inline script\u2019ide kasutus v\u00f5ib p\u00f5hjustada.<\/p>\n\n\n\n<p>On siiski erandeid, kus as\u00fcnkroonse scripti laadimisel kasutatakse endiselt XHR-i \u2013 n\u00e4iteks siis, kui annad <code>&quot;headers&quot;<\/code> valiku. Tiim paneb siia konkreetse soovituse: <strong>kasuta <code>scriptAttrs<\/code>-i<\/strong> (mitte <code>headers<\/code>), ning jQuery kasutab v\u00f5imalusel <code>&lt;script&gt;<\/code> tag\u2019i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) jQuery l\u00e4htekood kolis AMD-st ES module\u2019itesse<\/h3>\n\n\n\n<p>\u00dcks suuremaid \u201ct\u00e4nap\u00e4evastamise\u201d samme on see, et jQuery <code>main<\/code> haru l\u00e4htekood migreeriti <strong>AMD<\/strong>-st (taust: https:\/\/requirejs.org\/docs\/whyamd.html) <strong>ES modules<\/strong>\u2019isse (PR: https:\/\/github.com\/jquery\/jquery\/pull\/4541). jQuery l\u00e4htekood on ammu olnud npm-is ja GitHubis avalik, kuid varem ei saanud seda otse module\u2019ina importida ilma <strong>RequireJS<\/strong>-ita (jQuery varasem build tool).<\/p>\n\n\n\n<p>Pakendamiseks on n\u00fc\u00fcd kasutusel <strong>Rollup<\/strong> (https:\/\/rollupjs.org\/introduction\/) ning testid jooksevad ES module\u2019ite peal eraldi. Praktikas t\u00e4hendab see paremat \u00fchilduvust modernsete build tool\u2019idega, t\u00e4nap\u00e4evaste workflow\u2019dega ning v\u00f5imalust kasutada brauseris <code>&lt;script type=module&gt;<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4) Deprecated API-d eemaldati (ja mida nende asemel kasutada)<\/h3>\n\n\n\n<p>Mitmed funktsioonid olid deprekeeritud juba mitu versiooni ning 4.0 suurversioonis t\u00f5mmati neil l\u00f5puks pistik seinast. Need olid kas algusest peale m\u00f5eldud sisemiseks kasutuseks v\u00f5i on neil n\u00fc\u00fcd natiivsed ekvivalendid k\u00f5igis jQuery 4.0 toetatud brauserites.<\/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>Asendused on enamasti otse natiivsed: <code>Array.isArray()<\/code>, <code>JSON.parse()<\/code>, <code>String.prototype.trim()<\/code>, <code>Date.now()<\/code> jne.<\/p>\n\n\n\n<p>Huvitav k\u00f5rvalm\u00f5ju: deprecated API-de eemaldus koos vana IE toe eemaldamisega v\u00e4hendas jQuery mahtu rohkem kui <strong>3k bytes gzipped<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5) jQuery protot\u00fc\u00fcbilt kadusid sisemised Array meetodid (push\/sort\/splice)<\/h3>\n\n\n\n<p>jQuery protot\u00fc\u00fcbil olid ammu olemas Array meetodid, mis ei k\u00e4itunud nagu \u201ctavalised\u201d jQuery chain\u2019itavad meetodid ning olid m\u00f5eldud sisekasutuseks. Konkreetselt: <code>push<\/code>, <code>sort<\/code> ja <code>splice<\/code>. jQuery 4.0-s eemaldati need protot\u00fc\u00fcbilt t\u00e4ielikult.<\/p>\n\n\n\n<p>Kui sul oli (soovitatust hoolimata) kuskil kood, mis tegi midagi stiilis <code>$elems.push( elem )<\/code>, siis ametlik asendus on:<\/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>\/\/ varem (jQuery &lt; 4):\n\/\/ $elems.push( elem )\n\n\/\/ jQuery 4 alternatiiv:\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\">\/\/ varem (jQuery &#x3C; 4):<\/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\">\/\/ jQuery 4 alternatiiv:<\/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<h3 class=\"wp-block-heading\">6) Focus\/blur event\u2019ide j\u00e4rjekord on n\u00fc\u00fcd W3C spec\u2019i j\u00e4rgi<\/h3>\n\n\n\n<p>Aastaid oli probleem selles, et brauserid ei olnud n\u00f5us, mis j\u00e4rjekorras focus ja blur event\u2019id p\u00e4riselt tulevad (sh focusin, focusout, focus, blur). T\u00e4naseks on k\u00f5ik brauserid, mida jQuery 4.0 toetab, koondunud \u00fchtse j\u00e4rjekorra peale. Paraku erineb see jQuery ajalooliselt \u201c\u00fchtlustatud\u201d j\u00e4rjekorrast, seega on tegemist breaking change\u2019iga.<\/p>\n\n\n\n<p>Alates jQuery 4.0-st jQuery <strong>ei override\u2019i enam natiivset k\u00e4itumist<\/strong>. See t\u00e4hendab, et k\u00f5ik brauserid peale IE j\u00e4rgivad hetkelist W3C spetsifikatsiooni:<\/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>Varasem jQuery j\u00e4rjekord oli: <code>focusout<\/code>, <code>blur<\/code>, <code>focusin<\/code>, <code>focus<\/code>. Iroonilisel kombel oli ainus brauser, mis j\u00e4rgis vana W3C spec\u2019i (enne 2023 uuendust), Internet Explorer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7) Slim build muutus veel \u201cslimmer\u201d (Deferreds ja Callbacks v\u00e4ljas)<\/h3>\n\n\n\n<p>Kuigi t\u00e4nap\u00e4eval on harva olukord, kus jQuery failisuurus on otsene pudelikael, on slim build ikkagi umbes <strong>8k gzipped bytes<\/strong> v\u00e4iksem kui t\u00e4isversioon. jQuery 4.0.0-s muutus slim build veel v\u00e4iksemaks t\u00e4nu Deferreds\/Callbacks eemaldamisele (vt \u00fclal) ning fookus on native Promise\u2019i kasutamisel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mida \u00fcleminekul praktiliselt j\u00e4lgida<\/h2>\n\n\n\n<p>Kui su koodibaas on suur (v\u00f5i s\u00f5ltud pluginatest, mida sa ise ei halda), siis jQuery 4.0 puhul tasub teha upgrade pigem kontrollitult:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Loe ametlik \u201cUpgrade Guide\u201d l\u00e4bi: https:\/\/jquery.com\/upgrade-guide\/4.0\/<\/li>\n\n\n<li>Lisa vajadusel jQuery Migrate: https:\/\/github.com\/jquery\/jquery-migrate\/ (see aitab tuvastada ja ajutiselt siluda vanu mustreid).<\/li>\n\n\n<li>Kui sul on brauseri tugin\u00f5uded (IE10\/Edge Legacy\/Android Browser jne), kinnita need \u00fcle: jQuery 4.0 neid ei kata, vajadusel j\u00e4\u00e4 jQuery 3.x peale.<\/li>\n\n\n<li>Kui sul on range CSP (eriti <code>require-trusted-types-for<\/code>), testi hoolikalt HTML-i manipuleerimisi ja script-laadimist.<\/li>\n\n\n<li>Otsi koodist eemaldatud API kasutust (nt <code>jQuery.trim<\/code>, <code>jQuery.parseJSON<\/code>, <code>jQuery.isArray<\/code>) ja asenda natiivsete ekvivalentidega.<\/li>\n\n\n<li>Kontrolli fokuseerimisega seotud loogikat (formid, modaalid, custom input komponendid): event\u2019ide j\u00e4rjekord muutus.<\/li>\n\n\n<li>Kui kasutad \u201cslim\u201d build\u2019i, tee kindlaks, et sul pole s\u00f5ltuvusi Deferreds\/Callbacks\u2019i v\u00f5i ajaxi osas; IE11 puhul planeeri Promise polyfill v\u00f5i kasuta t\u00e4isbuild\u2019i.<\/li>\n\n\n<li>Kui midagi l\u00e4heb katki ja tundub jQuery bug, raporteeri: https:\/\/github.com\/jquery\/jquery\/issues<\/li>\n\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog\u2019i tipud: mis on 4.0 all kapoti all muutunud<\/h2>\n\n\n\n<p>Allpool on jQuery 4.0.0 muudatuste nimekiri moodulite kaupa (changelog\u2019i \u201chighlight\u201d stiilis, aga detailne). T\u00e4ielik v\u00f5rdlus 3.7.1 \u2192 4.0.0: <strong>Full changelog: <a href=\"https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1...4.0.0\">4.0.0<\/a><\/strong>.<\/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 (<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\/ff1f0eaafd0dbcd4c063c3c557d9cee0a461f89d\">ff1f0eaa<\/a>)<\/li>\n\n\n<li>Only run browserless tests during the release (<a href=\"https:\/\/github.com\/jquery\/jquery\/commit\/fb5ab0f546e0e25ccb5feb3d51ca2ea743b06efc\">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\">20. s\u00fcnnip\u00e4ev ja v\u00e4ike ajalooline hetk<\/h2>\n\n\n\n<p>jQuery 4.0.0 postitus s\u00fcndis s\u00fcmboolselt tiimi kokkutulekul Dallas\u2019es \u2013 jQuery 20. s\u00fcnnip\u00e4eva puhul. John Resig liitus ka Zoomi kaudu ning v\u00e4ljalase avaldati sisuliselt \u201ckoos olles\u201d.<\/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\/18\/2026\/01\/jquery-reunion-group-edited.jpeg\" alt=\"jQuery tiimi 20. s\u00fcnnip\u00e4eva kokkutuleku grupipilt\" class=\"wp-image-157\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/jquery-reunion-group-edited.jpeg 1804w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/jquery-reunion-group-edited-300x226.jpeg 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/jquery-reunion-group-edited-1024x771.jpeg 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/jquery-reunion-group-edited-768x579.jpeg 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/jquery-reunion-group-edited-1536x1157.jpeg 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/jquery-reunion-group-edited-400x301.jpeg 400w\" sizes=\"auto, (max-width: 1804px) 100vw, 1804px\" \/><figcaption class=\"wp-element-caption\">jQuery 20th Birthday reunion Dallas\u2019es (John Resig liitus Zoomi kaudu). \u2014 <em>Forr\u00e1s: Official jQuery Blog (blog.jquery.com)<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Kokkuv\u00f5te<\/h2>\n\n\n\n<p>jQuery 4.0.0 on moderniseeriv suurversioon, mis l\u00f5ikab \u00e4ra suure osa p\u00e4randist (IE < 11 ja muud vanad brauserid), eemaldab ammu deprekeeritud API-d ning teeb olulisi samme turvalisuse ja t\u00e4nap\u00e4evaste build-workflow\u2019de suunas (Trusted Types\/CSP, ES modules, Rollup). \u00dcleminek on enamiku koodibaaside jaoks realistlik, aga tasub teha teadlikult: loe upgrade guide\u2019i, kasuta Migrate\u2019i ja testi eriti event\u2019ide (focus\/blur) ning CSP-ga seotud osi.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Viited \/ Allikad<\/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\">jQuery 4.0.0 Full changelog (3.7.1&#8230;4.0.0)<\/a><\/li><li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/TrustedHTML\" target=\"_blank\" rel=\"noopener noreferrer\">TrustedHTML &#8211; MDN Web Docs<\/a><\/li><li><a href=\"https:\/\/requirejs.org\/docs\/whyamd.html\" target=\"_blank\" rel=\"noopener noreferrer\">AMD &#8211; Why AMD? (RequireJS)<\/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><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>jQuery sai l\u00f5puks uue suure v\u00e4ljalaske: 4.0.0. Kui su projekt elab veel 3.x peal, siis siin on k\u00f5ik olulised katkestused, moderniseerimised ja praktilised \u00fcleminekunipid \u00fches kohas.<\/p>\n","protected":false},"author":49,"featured_media":156,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[86],"tags":[89,90,91,88,87],"class_list":["post-158","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-csp","tag-es-modules","tag-front-end","tag-javascript","tag-jquery"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts\/158\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/media\/156"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/media?parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/categories?post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/tags?post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}