{"id":281,"date":"2026-01-19T00:00:00","date_gmt":"2026-01-18T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/hu\/jquery-4-0-0-megerkezett-modernizalas-csp-trusted-types-toresek\/"},"modified":"2026-01-19T00:00:00","modified_gmt":"2026-01-18T23:00:00","slug":"jquery-4-0-0-megerkezett-modernizalas-csp-trusted-types-toresek","status":"publish","type":"post","link":"https:\/\/helloblog.io\/hu\/jquery-4-0-0-megerkezett-modernizalas-csp-trusted-types-toresek\/","title":{"rendered":"Meg\u00e9rkezett a jQuery 4.0.0: moderniz\u00e1l\u00e1s, CSP\/Trusted Types, \u00e9s n\u00e9h\u00e1ny r\u00e9g\u00f3ta esed\u00e9kes t\u00f6r\u00e9s"},"content":{"rendered":"\n<p>A jQuery 2006. janu\u00e1r 14-\u00e9n indult \u00fatj\u00e1ra, amikor John Resig a New York-i BarCamp-en bemutatta a k\u00f6nyvt\u00e1rat. H\u00fasz \u00e9vvel k\u00e9s\u0151bb pedig itt a jQuery 4.0.0 v\u00e9gleges kiad\u00e1sa. A jQuery csapat szerint hossz\u00fa fejleszt\u00e9si ciklus \u00e9s t\u00f6bb el\u0151zetes (pre-release) ut\u00e1n \u00e9rkezett meg ez a verzi\u00f3, ami rengeteg moderniz\u00e1l\u00e1st hoz, \u00e9s mivel nagyverzi\u00f3r\u00f3l van sz\u00f3, n\u00e9h\u00e1ny t\u00f6r\u00e9ssel (breaking change) is sz\u00e1molni kell.<\/p>\n\n\n\n<p>A j\u00f3 h\u00edr: a bejelent\u00e9s alapj\u00e1n a legt\u00f6bb projekt v\u00e1rhat\u00f3an minim\u00e1lis k\u00f3dm\u00f3dos\u00edt\u00e1ssal \u00e1t tud \u00e1llni. A rossz h\u00edr: van p\u00e1r olyan \u201em\u00e1gikus\u201d viselked\u00e9s \u00e9s \u00f6r\u00f6k\u00f6lt kompatibilit\u00e1si r\u00e9teg, amit v\u00e9gre kivettek, mert patch\/minor kiad\u00e1sban ezt nem lehetett volna megtenni.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info 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\">Friss\u00edt\u00e9s el\u0151tt<\/h4>\n\n\n<p>\u00c1t\u00e1ll\u00e1shoz a csapat k\u00fcl\u00f6n upgrade guide-ot \u00e9s friss\u00edtett jQuery Migrate b\u0151v\u00edtm\u00e9nyt is ad: https:\/\/jquery.com\/upgrade-guide\/4.0\/ \u00e9s https:\/\/github.com\/jquery\/jquery-migrate\/.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Mi\u00e9rt nagy dolog a 4.0.0?<\/h2>\n\n\n\n<p>Ez az els\u0151 nagyverzi\u00f3 a jQuery-n\u00e9l k\u00f6zel 10 \u00e9v ut\u00e1n, ez\u00e9rt t\u00f6bb olyan r\u00e9g\u00f3ta halogatott takar\u00edt\u00e1s is beker\u00fclt, amit eddig csak deprecated st\u00e1tuszban tudtak \u201eparkoltatni\u201d. R\u00f6viden: kiker\u00fcltek a r\u00e9gi b\u00f6ng\u00e9sz\u0151kre c\u00e9lzott workaroundok, leker\u00fcltek elavult API-k, elt\u0171ntek dokument\u00e1latlan bels\u0151 param\u00e9terek, \u00e9s n\u00e9h\u00e1ny t\u00falkomplik\u00e1lt, \u201evar\u00e1zslatos\u201d m\u0171k\u00f6d\u00e9s is egyszer\u0171s\u00f6d\u00f6tt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">B\u00f6ng\u00e9sz\u0151t\u00e1mogat\u00e1s: IE<11 kivezetve, IE11 m\u00e9g marad (egyel\u0151re)<\/h2>\n\n\n\n<p>A jQuery 4.0 megsz\u00fcnteti az IE 10 \u00e9s r\u00e9gebbi verzi\u00f3k t\u00e1mogat\u00e1s\u00e1t. Sokan ilyenkor r\u00f6gt\u00f6n azt k\u00e9rdezik: mi\u00e9rt nem dobt\u00e1k ki az IE 11-et is? A bejelent\u00e9s szerint a t\u00e1mogat\u00e1st szakaszosan vezetik ki, \u00e9s a k\u00f6vetkez\u0151 l\u00e9pcs\u0151 a tervek szerint jQuery 5.0-ban j\u00f6n: https:\/\/github.com\/jquery\/jquery\/pull\/5077.<\/p>\n\n\n\n<p>Most teh\u00e1t az a c\u00e9l, hogy els\u0151sorban az IE 11-n\u00e9l r\u00e9gebbi verzi\u00f3kat kiszolg\u00e1l\u00f3 k\u00f3d t\u0171nj\u00f6n el.<\/p>\n\n\n\n<p>Emellett t\u00f6bb nagyon r\u00e9gi b\u00f6ng\u00e9sz\u0151 t\u00e1mogat\u00e1sa is kiker\u00fclt: Edge Legacy (a Chromium el\u0151tti Edge), iOS az utols\u00f3 3 verzi\u00f3n\u00e1l r\u00e9gebbiek, Firefox az utols\u00f3 2 verzi\u00f3n\u00e1l r\u00e9gebbiek (a Firefox ESR kiv\u00e9tel\u00e9vel), valamint az Android Browser. A csapat szerint ez jellemz\u0151en nem ig\u00e9nyel fejleszt\u0151i oldalon v\u00e1ltoztat\u00e1st, de ha ezekre a b\u00f6ng\u00e9sz\u0151kre m\u00e9g l\u0151n\u00f6d kell, akkor maradj jQuery 3.x-en.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CSP \u00e9s Trusted Types: biztons\u00e1gosabb HTML-manipul\u00e1ci\u00f3<\/h2>\n\n\n\n<p>A jQuery 4.0 egyik fontos moderniz\u00e1l\u00e1sa a Trusted Types t\u00e1mogat\u00e1s. A Trusted Types egy b\u00f6ng\u00e9sz\u0151s biztons\u00e1gi mechanizmus (k\u00fcl\u00f6n\u00f6sen CSP-s k\u00f6rnyezetben), amivel cs\u00f6kkenthet\u0151 bizonyos XSS kock\u00e1zatok es\u00e9lye. A jQuery 4.0 \u00fagy b\u0151v\u00fclt, hogy a TrustedHTML-be csomagolt HTML-t a DOM-manipul\u00e1ci\u00f3s met\u00f3dusok be tudj\u00e1k fogadni an\u00e9lk\u00fcl, hogy s\u00e9rten\u00e9k a <code>require-trusted-types-for<\/code> Content Security Policy direkt\u00edv\u00e1t.<\/p>\n\n\n\n<p>A bejelent\u00e9s itt m\u00e9g egy gyakorlati v\u00e1ltoztat\u00e1st is kiemel: kor\u00e1bban egyes AJAX script k\u00e9r\u00e9sekn\u00e9l m\u00e1r <code>&lt;script&gt;<\/code> tagekkel dolgoztak az\u00e9rt, hogy megmaradjanak attrib\u00fatumok (p\u00e9ld\u00e1ul <code>crossdomain<\/code>), most pedig a legt\u00f6bb aszinkron script k\u00e9r\u00e9s \u00e1t\u00e1llt <code>&lt;script&gt;<\/code> tag alap\u00fa bet\u00f6lt\u00e9sre. A c\u00e9l, hogy elker\u00fclhet\u0151k legyenek a CSP hib\u00e1k, amiket inline script haszn\u00e1lat okozhat.<\/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\">Script k\u00e9r\u00e9sek \u00e9s headers<\/h4>\n\n\n<p>Van p\u00e1r kiv\u00e9tel, amikor tov\u00e1bbra is XHR-t haszn\u00e1lnak aszinkron script k\u00e9r\u00e9sekhez \u2013 p\u00e9ld\u00e1ul ha a <code>&quot;headers&quot;<\/code> opci\u00f3t \u00e1tadod. A csapat kifejezetten jelzi: ilyen esetben ink\u00e1bb <code>scriptAttrs<\/code> haszn\u00e1lata javasolt.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">A jQuery forr\u00e1sk\u00f3dja ES module-okba k\u00f6lt\u00f6z\u00f6tt (AMD helyett)<\/h2>\n\n\n\n<p>Nagy bels\u0151 v\u00e1lt\u00e1s, hogy a <code>main<\/code> \u00e1gon a jQuery forr\u00e1sk\u00f3dja AMD-r\u0151l (RequireJS-es vil\u00e1g) ES module-okra \u00e1llt \u00e1t. A jQuery forr\u00e1s eddig is el\u00e9rhet\u0151 volt npm-en \u00e9s GitHub-on, de modul\u00e1risan import\u00e1lni k\u00f6zvetlen\u00fcl nem igaz\u00e1n tudtad RequireJS n\u00e9lk\u00fcl, mert ez volt a prefer\u00e1lt build eszk\u00f6z.<\/p>\n\n\n\n<p>A csapat az\u00f3ta Rollup-ra v\u00e1ltott a csomagol\u00e1shoz, \u00e9s k\u00fcl\u00f6n futtatj\u00e1k a teszteket az ES module-os v\u00e1ltozatra is. Ez a v\u00e1lt\u00e1s l\u00e9nyeg\u00e9ben kompatibilisebb\u00e9 teszi a jQuery-t a modern build toolinggal \u00e9s fejleszt\u00e9si workflowkkal, illetve a b\u00f6ng\u00e9sz\u0151ben is k\u00e9zenfekv\u0151bb a haszn\u00e1lat <code> &lt;script type=module&gt; <\/code> mellett.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kiker\u00fcltek a r\u00e9g\u00f3ta deprecated API-k<\/h2>\n\n\n\n<p>A 4.0.0-ban v\u00e9gleg elt\u0171nt egy csom\u00f3 olyan f\u00fcggv\u00e9ny, ami t\u00f6bb verzi\u00f3 \u00f3ta deprecated volt. Ezek egy r\u00e9sze eredetileg is bels\u0151 haszn\u00e1latra k\u00e9sz\u00fclt, m\u00e1s r\u00e9sze pedig m\u00e1ra minden t\u00e1mogatott b\u00f6ng\u00e9sz\u0151ben rendelkezik nat\u00edv megfelel\u0151vel.<\/p>\n\n\n\n<p>A kiad\u00e1si jegyzet alapj\u00e1n a k\u00f6vetkez\u0151k ker\u00fcltek ki:<\/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>A javaslat egy\u00e9rtelm\u0171: ahol lehet, v\u00e1lts nat\u00edvra, p\u00e9ld\u00e1ul <code>Array.isArray()<\/code>, <code>JSON.parse()<\/code>, <code>String.prototype.trim()<\/code>, <code>Date.now()<\/code>.<\/p>\n\n\n\n<p>\u00c9rdekess\u00e9g, hogy a deprecated API-k kiszed\u00e9se \u00e9s a r\u00e9gi IE-t t\u00e1mogat\u00f3 k\u00f3d kigyoml\u00e1l\u00e1sa egy\u00fctt t\u00f6bb mint 3 kB (gzip) m\u00e9retcs\u00f6kken\u00e9st hozott.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bels\u0151 Array met\u00f3dusok t\u00f6rl\u00e9se a jQuery prototype-r\u00f3l: push\/sort\/splice<\/h2>\n\n\n\n<p>A jQuery prototype eddig tartalmazott p\u00e1r Array met\u00f3dust (<code>push<\/code>, <code>sort<\/code>, <code>splice<\/code>), amik nem viselkedtek \u00fagy, mint a jQuery-s l\u00e1ncolhat\u00f3 met\u00f3dusok, \u00e9s val\u00f3j\u00e1ban bels\u0151 haszn\u00e1latra sz\u00e1nt\u00e1k \u0151ket. Ezek most kiker\u00fcltek.<\/p>\n\n\n\n<p>Ha valahol m\u00e9gis haszn\u00e1ltad \u0151ket, a bejelent\u00e9s konkr\u00e9t cser\u00e9t is ad: <code>$elems.push( elem )<\/code> helyett <code>[].push.call( $elems, elem )<\/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>\/\/ jQuery 3.x k\u00f6rny\u00e9k\u00e9n sok helyen elment, de 4.0-t\u00f3l ez m\u00e1r nem m\u0171k\u00f6dik:\n\/\/ $elems.push(elem)\n\n\/\/ 4.0 kompatibilis megold\u00e1s:\n[].push.call($elems, elem);\n\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\">\/\/ jQuery 3.x k\u00f6rny\u00e9k\u00e9n sok helyen elment, de 4.0-t\u00f3l ez m\u00e1r nem m\u0171k\u00f6dik:<\/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\">\/\/ 4.0 kompatibilis megold\u00e1s:<\/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>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">F\u00f3kusz esem\u00e9nyek: mostant\u00f3l a W3C sorrend az alap (breaking change)<\/h2>\n\n\n\n<p>Hossz\u00fa ideig a b\u00f6ng\u00e9sz\u0151k nem \u00e9rtettek egyet a focus\/blur esem\u00e9nyek sorrendj\u00e9ben (ide\u00e9rtve a focusin, focusout, focus, blur esem\u00e9nyeket is). A jQuery \u00e9vekkel ezel\u0151tt be\u00e1ll\u00edtott egy konzisztens, saj\u00e1t sorrendet, hogy a cross-browser viselked\u00e9s kisz\u00e1m\u00edthat\u00f3 legyen.<\/p>\n\n\n\n<p>Mostanra viszont a jQuery 4.0 \u00e1ltal t\u00e1mogatott b\u00f6ng\u00e9sz\u0151k \u201e\u00f6sszez\u00e1rtak\u201d egy k\u00f6z\u00f6s sorrendre \u2013 csak \u00e9pp ez nem egyezik a jQuery kor\u00e1bbi v\u00e1laszt\u00e1s\u00e1val. Emiatt ez t\u00f6r\u00e9st okoz, mert a jQuery 4.0-t\u00f3l nem \u00edrj\u00e1k fel\u00fcl a nat\u00edv viselked\u00e9st.<\/p>\n\n\n\n<p>A jQuery 4.0-t\u00f3l (IE kiv\u00e9tel\u00e9vel) a jelenlegi W3C specifik\u00e1ci\u00f3 szerinti sorrend \u00e9rv\u00e9nyes:<\/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>A jQuery kor\u00e1bbi sorrendje ez volt: focusout, blur, focusin, focus. A kiad\u00e1si jegyzet megjegyzi, hogy az egyetlen b\u00f6ng\u00e9sz\u0151, ami valaha a r\u00e9gi W3C spec-et k\u00f6vette (miel\u0151tt 2023-ban friss\u00edtett\u00e9k), az az Internet Explorer volt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Slim build: m\u00e9g kisebb, Deferreds \u00e9s Callbacks n\u00e9lk\u00fcl<\/h2>\n\n\n\n<p>A slim build jQuery 4.0.0-ban tov\u00e1bb zsugorodott, mert kiker\u00fcltek bel\u0151le a Deferreds \u00e9s a Callbacks modulok. A bejelent\u00e9s szerint \u00edgy m\u00e1r kb. 19,5 kB gzippelve.<\/p>\n\n\n\n<p>A Deferreds r\u00e9g\u00f3ta kompatibilis volt a Promises\/A+ standarddal, \u00edgy a legt\u00f6bb esetben nat\u00edv Promise-okkal kiv\u00e1lthat\u00f3. A csapat ugyanakkor jelzi: a Deferreds tud olyan extra funkci\u00f3kat, amiket a nat\u00edv Promise nem, de a tipikus haszn\u00e1lat nagy r\u00e9sze \u00e1t\u00fcltethet\u0151 Promise met\u00f3dusokra.<\/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\">IE11 \u00e9s Promise<\/h4>\n\n\n<p>A nat\u00edv Promise-ok minden jQuery 4.0 \u00e1ltal t\u00e1mogatott b\u00f6ng\u00e9sz\u0151ben el\u00e9rhet\u0151k, kiv\u00e9ve IE11-ben. Ha IE11 t\u00e1mogat\u00e1s kell, akkor \u00e9rdemesebb a \u201emain build\u201d-et haszn\u00e1lni, vagy Promise polyfillt be\u00e9p\u00edteni.<\/p>\n\n<\/div>\n\n\n\n<p>A slim build m\u00f6g\u00f6tti gyakorlati logika: sokszor nincs sz\u00fcks\u00e9ged ajax-ra (vagy ink\u00e1bb egy k\u00fcl\u00f6n, erre specializ\u00e1lt libraryt haszn\u00e1lsz), anim\u00e1ci\u00f3hoz pedig el\u00e9g lehet CSS + class manipul\u00e1ci\u00f3. Mivel a t\u00e1mogatott b\u00f6ng\u00e9sz\u0151k (IE11 kiv\u00e9tel\u00e9vel) m\u00e1r hozz\u00e1k a nat\u00edv Promise-okat, a Deferreds\/Callbacks modulok n\u00e9lk\u00fcl\u00f6zhet\u0151k a legt\u00f6bb modern k\u00f3db\u00e1zisban.<\/p>\n\n\n\n<p>A bejelent\u00e9s megjegyzi: a jQuery m\u00e9rete manaps\u00e1g ritk\u00e1n a teljes\u00edtm\u00e9ny f\u0151 sz\u0171k keresztmetszete, de a slim build kb. 8 kB (gzip) el\u0151nyt ad a teljes csomaghoz k\u00e9pest.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Let\u00f6lt\u00e9s: CDN \u00e9s npm<\/h2>\n\n\n\n<p>A jQuery 4.0.0 el\u00e9rhet\u0151 a hivatalos CDN-en \u00e9s npm-en is. Harmadik f\u00e9l CDN-ek v\u00e1rhat\u00f3an szint\u00e9n \u00e1tveszik, de a kiad\u00e1si \u00fctemez\u00e9s\u00fck nem a jQuery csapat kez\u00e9ben van, ez\u00e9rt \u00e9rdemes p\u00e1r nap \u00e1tfut\u00e1ssal sz\u00e1molni.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>CDN (unminified): https:\/\/code.jquery.com\/jquery-4.0.0.js<\/li>\n\n\n<li>CDN (minified): 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<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\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>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Slim build f\u00e1jlok<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>CDN (slim, unminified): https:\/\/code.jquery.com\/jquery-4.0.0.slim.js<\/li>\n\n\n<li>CDN (slim, minified): https:\/\/code.jquery.com\/jquery-4.0.0.slim.min.js<\/li>\n\n<\/ul>\n\n\n\n<p>A kiad\u00e1si jegyzet szerint ezek a friss\u00edt\u00e9sek m\u00e1r az aktu\u00e1lis verzi\u00f3k npm-en \u00e9s Bower-en is. A beszerz\u00e9si lehet\u0151s\u00e9gek \u00f6sszefoglal\u00f3ja itt van: https:\/\/jquery.com\/download\/.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aj\u00e1nlott friss\u00edt\u00e9si \u00fat: Upgrade guide + jQuery Migrate + issue report<\/h2>\n\n\n\n<p>A jQuery csapat k\u00fcl\u00f6n kiemeli, hogy a v\u00e1lt\u00e1shoz k\u00e9szen \u00e1ll az upgrade guide (https:\/\/jquery.com\/upgrade-guide\/4.0\/) \u00e9s a jQuery Migrate b\u0151v\u00edtm\u00e9ny (https:\/\/github.com\/jquery\/jquery-migrate\/), ami tipikusan abban seg\u00edt, hogy a r\u00e9gi API-haszn\u00e1latot \u00e9s mint\u00e1kat jobban \u201ekisz\u00farja\u201d a fut\u00e1sid\u0151ben.<\/p>\n\n\n\n<p>Ha friss\u00edt\u00e9s k\u00f6zben probl\u00e9m\u00e1ba futsz, a hivatalos hibajegy \u00fatvonal a jQuery repo issues fel\u00fclete: https:\/\/github.com\/jquery\/jquery\/issues.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">20 \u00e9ves jubileum \u00e9s jQuery-reunion<\/h2>\n\n\n\n<p>A 4.0.0 posztol\u00e1sa egy jQuery-s tal\u00e1lkoz\u00f3 (reunion) alatt t\u00f6rt\u00e9nt Dallasban, ahol a csapat t\u00f6bb tagja szem\u00e9lyesen volt jelen, John Resig pedig Zoomon csatlakozott.<\/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\/2\/2026\/01\/jquery-reunion-group-edited.jpeg\" alt=\"Csoportk\u00e9p a jQuery-reunionr\u00f3l Dallasban\" class=\"wp-image-280\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/2\/2026\/01\/jquery-reunion-group-edited.jpeg 1804w, https:\/\/helloblog.io\/app\/uploads\/sites\/2\/2026\/01\/jquery-reunion-group-edited-300x226.jpeg 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/2\/2026\/01\/jquery-reunion-group-edited-1024x771.jpeg 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/2\/2026\/01\/jquery-reunion-group-edited-768x579.jpeg 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/2\/2026\/01\/jquery-reunion-group-edited-1536x1157.jpeg 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/2\/2026\/01\/jquery-reunion-group-edited-400x301.jpeg 400w\" sizes=\"auto, (max-width: 1804px) 100vw, 1804px\" \/><figcaption class=\"wp-element-caption\">A jQuery 4.0.0 bejelent\u00e9se egy csapattal\u00e1lkoz\u00f3 alatt ker\u00fclt ki. \u2014 <em>Forr\u00e1s: blog.jquery.com \/ The jQuery Foundation<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog: teljes \u00f6sszehasonl\u00edt\u00e1s<\/h2>\n\n\n\n<p>A teljes changelogot a csapat GitHub compare n\u00e9zetben adja: https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1&#8230;4.0.0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00e1ltoz\u00e1sok modulonk\u00e9nt (a hivatalos changelog alapj\u00e1n)<\/h2>\n\n\n\n<p>Az al\u00e1bbi lista a jQuery 4.0.0 kiad\u00e1si bejegyz\u00e9s\u00e9ben szerepl\u0151 modulonk\u00e9nti v\u00e1ltoz\u00e1sokat k\u00f6veti. Ha friss\u00edt\u00e9st tervezel, k\u00fcl\u00f6n\u00f6sen a breaking change-ekkel \u00e9rintett r\u00e9szekn\u00e9l \u00e9rdemes c\u00e9lzottan \u00e1tn\u00e9zni a saj\u00e1t k\u00f3db\u00e1zisodat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajax<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>T\u00f6mb t\u00edpus\u00fa data ne legyen automatikusan bin\u00e1risk\u00e9nt kezelve (992a1911)<\/li>\n\n\n<li>Legyen enged\u00e9lyezett a <code>processData: true<\/code> bin\u00e1ris adatokn\u00e1l is (ce264e07)<\/li>\n\n\n<li>Bin\u00e1ris adatok t\u00e1mogat\u00e1sa (FormData-val egy\u00fctt) (a7ed9a7b)<\/li>\n\n\n<li><code>headers<\/code> t\u00e1mogat\u00e1s script transportn\u00e1l cross-domain esetben is (#5142, 6d136443)<\/li>\n\n\n<li><code>null<\/code> legyen elfogadott success f\u00fcggv\u00e9nyk\u00e9nt <code>jQuery.get<\/code> eset\u00e9n (#4989, 74978b7e)<\/li>\n\n\n<li>Ne futtassa automatikusan a scriptet, ha nincs megadva dataType (#4822, 025da4dd)<\/li>\n\n\n<li>responseJSON m\u0171k\u00f6dj\u00f6n hib\u00e1s same-domain JSONP k\u00e9r\u00e9sekn\u00e9l is (68b4ec59)<\/li>\n\n\n<li>JSONP hiba script v\u00e1laszok v\u00e9grehajt\u00e1sa (#4771, a1e619b0)<\/li>\n\n\n<li>CSP hib\u00e1k elker\u00fcl\u00e9se script transportn\u00e1l async k\u00e9r\u00e9sekn\u00e9l (#3969, 07a8e4a1)<\/li>\n\n\n<li>A json \u2192 jsonp automatikus \u201eprom\u00f3ci\u00f3\u201d logika kivezet\u00e9se (#1799, #3376, e7b3bc48)<\/li>\n\n\n<li>s.contentType fel\u00fcl\u00edr\u00e1sa a content-type header \u00e9rt\u00e9k\u00e9vel, ha van (#4119, 7fb90a6b)<\/li>\n\n\n<li>AJAX event aliasok deprecated st\u00e1tuszba mozgat\u00e1sa (23d53928)<\/li>\n\n\n<li>Sikertelen HTTP v\u00e1laszokra ne futtasson scriptet (#4250, 50871a5a)<\/li>\n\n\n<li>jQuery.ajaxSettings.xhr egyszer\u0171s\u00edt\u00e9se (#1967, abdc89ac)<\/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><code>.attr( name, false )<\/code> minden nem-ARIA attrib\u00fatumn\u00e1l elt\u00e1vol\u00edt\u00e1st jelentsen (#5388, 063831b6)<\/li>\n\n\n<li>N\u00e9h\u00e1ny b\u00e1jt farag\u00e1s (b40a4807)<\/li>\n\n\n<li>Attrib\u00fatum setter ne stringes\u00edtsen automatikusan (#4948, 4250b628)<\/li>\n\n\n<li>A <code>toggleClass(boolean|undefined)<\/code> szignat\u00fara kivezet\u00e9se (#3388, a4421101)<\/li>\n\n\n<li>val() refaktor: ne stripeljen carriage returnt, IE workaroundok izol\u00e1l\u00e1sa (ff281991)<\/li>\n\n\n<li>type attr hook ne legyen be\u00e1ll\u00edtva IE-n k\u00edv\u00fcl (9e66fe9a)<\/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>T\u00e1bl\u00e1zat <code>&lt;col&gt;<\/code> elemek dimenzi\u00f3inak jav\u00edt\u00e1sa (#5628, eca2a564)<\/li>\n\n\n<li>Cache eldob\u00e1sa finalPropName-ben (640d5825)<\/li>\n\n\n<li>Tesztjav\u00edt\u00e1sok \u00e9s CSS Zoom alatti tesztt\u00e1mogat\u00e1s (#5489, 071f6dba)<\/li>\n\n\n<li>reliableTrDimensions support teszt jav\u00edt\u00e1sa kezdetben rejtett iframe-ekn\u00e9l (b1e66a5f)<\/li>\n\n\n<li>Selector: 3.x-hez igaz\u00edt\u00e1s, k\u00fcls\u0151 <code>selector.js<\/code> wrapper elt\u00e1vol\u00edt\u00e1sa (53cf7244)<\/li>\n\n\n<li>reliableTrDimensions teszt m\u0171k\u00f6dj\u00f6n Bootstrap CSS-sel (#5270, 65b85031)<\/li>\n\n\n<li><code>offsetHeight( true )<\/code> stb. sz\u00e1moljon negat\u00edv marg\u00f3kkal is (#3982, bce13b72)<\/li>\n\n\n<li>Whitespace-only CSS v\u00e1ltoz\u00f3 \u00e9rt\u00e9kekn\u00e9l <code>undefined<\/code> visszaad\u00e1sa (#5120, 7eb00196)<\/li>\n\n\n<li>Undefined custom property-n\u00e9l ne trimeljen whitespace-t (#5105, ed306c02)<\/li>\n\n\n<li>Falsy \u00e9rt\u00e9kek kihagy\u00e1sa <code>addClass( array )<\/code> eset\u00e9n + k\u00f3d t\u00f6m\u00f6r\u00edt\u00e9se (#4998, a338b407)<\/li>\n\n\n<li>rtrim haszn\u00e1lat\u00e1nak indokl\u00e1sa CSS property \u00e9rt\u00e9kekn\u00e9l (655c0ed5)<\/li>\n\n\n<li>Whitespace trimel\u00e9se CSS Custom Properties \u00e9rt\u00e9kek k\u00f6r\u00fcl (#4926, efadfe99)<\/li>\n\n\n<li><code>show<\/code>, <code>hide<\/code>, <code>toggle<\/code> met\u00f3dusok legyenek a jQuery slim buildben is (297d18dd)<\/li>\n\n\n<li>opacity CSS hook elt\u00e1vol\u00edt\u00e1sa (865469f5)<\/li>\n\n\n<li>Buggy getComputedStyle workaround t\u00e1bl\u00e1zat sorokn\u00e1l IE\/Edge alatt (#4490, 26415e08)<\/li>\n\n\n<li>Ne adjon automatikusan &#8222;px&#8221;-et property-khez, n\u00e9h\u00e1ny kiv\u00e9telt\u0151l eltekintve (#2795, 00a9c2e5)<\/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>Elavult workaroundok elt\u00e1vol\u00edt\u00e1sa, support kommentek friss\u00edt\u00e9se (e2fe97b7)<\/li>\n\n\n<li><code>$.parseHTML<\/code> v\u00e1lt\u00e1sa <code>document.implementation<\/code>-r\u0151l <code>DOMParser<\/code>-re (0e123509)<\/li>\n\n\n<li>Export be\u00e1ll\u00edt\u00e1sok jav\u00edt\u00e1sa bundlerekhez (ESM &#038; CommonJS) (#5416, 60f11b58)<\/li>\n\n\n<li>T\u00f6bb inform\u00e1ci\u00f3 a named exportokr\u00f3l (5f869590)<\/li>\n\n\n<li>K\u00f3d egyszer\u0171s\u00edt\u00e9se a b\u00f6ng\u00e9sz\u0151t\u00e1mogat\u00e1s sz\u0171k\u00edt\u00e9se ut\u00e1n (93ca49e6)<\/li>\n\n\n<li>Factory k\u00fcl\u00f6n exportokba mozgat\u00e1sa (46f6e3da)<\/li>\n\n\n<li>Named exportok haszn\u00e1lata <code>src\/<\/code>-ben (#5262, f75daab0)<\/li>\n\n\n<li>Regresszi\u00f3 jav\u00edt\u00e1sa jQuery.text() eset\u00e9n HTMLDocument objektumokon (#5264, a75d6b52)<\/li>\n\n\n<li>Selector: jQuery.contains mozgat\u00e1sa selectorb\u00f3l core modulba (024d8719)<\/li>\n\n\n<li>A root param\u00e9ter kivezet\u00e9se a jQuery.fn.init-b\u0151l (d2436df3)<\/li>\n\n\n<li>Ne t\u00e1maszkodjon arra, hogy a splice jelen van az inputon (9c6f64c7)<\/li>\n\n\n<li>Manipulation: alap TrustedHTML t\u00e1mogat\u00e1s (#4409, de5398a6)<\/li>\n\n\n<li>B\u00f6ng\u00e9sz\u0151 hib\u00e1k riportol\u00e1sa parseXML-ben (#4784, 89697325)<\/li>\n\n\n<li>jQuery.isXMLDoc fogadjon falsy inputot (#4782, fd421097)<\/li>\n\n\n<li>Edge Legacy t\u00e1mogat\u00e1s kivezet\u00e9se (#4568, e35fb62d)<\/li>\n\n\n<li>Iframe script futtat\u00e1sa saj\u00e1t kontextusban, doc param hozz\u00e1ad\u00e1sa globalEval-ben (#4518, 4592595b)<\/li>\n\n\n<li>callbacks &#038; deferred modulok kiz\u00e1r\u00e1sa a slim buildb\u0151l is (fbc44f52)<\/li>\n\n\n<li>AMD \u2192 ES modules migr\u00e1ci\u00f3 (d0ce00cd)<\/li>\n\n\n<li>Array.prototype.flat haszn\u00e1lata, ahol t\u00e1mogatott (#4320, 9df4f1de)<\/li>\n\n\n<li>push\/sort\/splice priv\u00e1t m\u00e1solatainak elt\u00e1vol\u00edt\u00e1sa a jQuery prototype-r\u00f3l (b59107f5)<\/li>\n\n\n<li>.even() &#038; .odd() implement\u00e1l\u00e1sa a POS :even &#038; :odd kiv\u00e1lt\u00e1s\u00e1ra (78420d42)<\/li>\n\n\n<li>jQuery.trim deprecated st\u00e1tuszba helyez\u00e9se (#4363, 5ea59460)<\/li>\n\n\n<li>IE-specifikus support tesztek elt\u00e1vol\u00edt\u00e1sa, document.documentMode haszn\u00e1lata (#4386, 3527a384)<\/li>\n\n\n<li>T\u00e1mogat\u00e1s kivezet\u00e9se: IE <11, iOS <11, Firefox <65, Android Browser &#038; PhantomJS (#3950, #4299, cf84696f)<\/li>\n\n\n<li>Deprecated jQuery API-k elt\u00e1vol\u00edt\u00e1sa (#4056, 58f0c00b)<\/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>Refaktor a m\u00e9ret cs\u00f6kkent\u00e9s\u00e9re (805cdb43)<\/li>\n\n\n<li>Event\/Manipulation: \u00fctk\u00f6z\u00e9sek megel\u0151z\u00e9se Object.prototype-pal (#3256, 9d76c0b1)<\/li>\n\n\n<li>Data \u00e9s css\/effects camelCase implement\u00e1ci\u00f3k sz\u00e9tv\u00e1laszt\u00e1sa (#3355, 8fae2120)<\/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><code>getStackHook<\/code> \u00e1tnevez\u00e9se <code>getErrorHook<\/code>-ra (#5201, 258ca1ec)<\/li>\n\n\n<li>Source mapek tiszteletben tart\u00e1sa jQuery.Deferred.exceptionHook-ban (#3179, 0b9c5037)<\/li>\n\n\n<li>master \u2192 primary \u00e1tnevez\u00e9s (a32cf632)<\/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><code>.hover()<\/code> defini\u00e1l\u00e1sa nem-deprecated met\u00f3dusokkal (fd6ffc5e)<\/li>\n\n\n<li>jQuery.trim elt\u00e1vol\u00edt\u00e1sa (0b676ae1)<\/li>\n\n\n<li>AMD param\u00e9ter sorrend jav\u00edt\u00e1sa (f810080e)<\/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>offset prop fallback FF-hez megb\u00edzhatatlan TR dimenzi\u00f3k eset\u00e9n (#4529, 3bbbc111)<\/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>Apr\u00f3 komment hib\u00e1k jav\u00edt\u00e1sa (e4d4dd81)<\/li>\n\n\n<li>Herodevs link friss\u00edt\u00e9se README-ben (#5695, 093e63f9)<\/li>\n\n\n<li>CONTRIBUTING.md igaz\u00edt\u00e1sa <code>3.x-stable<\/code>-hez (d9281061)<\/li>\n\n\n<li>CONTRIBUTING.md friss\u00edt\u00e9se (4ef25b0d)<\/li>\n\n\n<li>Verzi\u00f3t\u00e1mogat\u00e1si szekci\u00f3 hozz\u00e1ad\u00e1sa README-hez (cbc2bc1f)<\/li>\n\n\n<li>Megmaradt HTTP URL-ek friss\u00edt\u00e9se HTTPS-re (7cdd8374)<\/li>\n\n\n<li>Modul linkek jav\u00edt\u00e1sa a csomag README-ben (ace646f6)<\/li>\n\n\n<li>watch task friss\u00edt\u00e9se CONTRIBUTING.md-ben (77d6ad71)<\/li>\n\n\n<li>codespell \u00e1ltal tal\u00e1lt el\u00edr\u00e1sok jav\u00edt\u00e1sa (620870a1)<\/li>\n\n\n<li>Stale gitter badge elt\u00e1vol\u00edt\u00e1sa readme-b\u0151l (67cb1af7)<\/li>\n\n\n<li>&#8222;Grunt build&#8221; szekci\u00f3 elt\u00e1vol\u00edt\u00e1sa PR template-b\u0151l (988a5684)<\/li>\n\n\n<li>Stale badge elt\u00e1vol\u00edt\u00e1sa README-b\u0151l (bcd9c2bc)<\/li>\n\n\n<li>Publik\u00e1lt csomag README friss\u00edt\u00e9se (edccabf1)<\/li>\n\n\n<li>git.io eml\u00edt\u00e9s elt\u00e1vol\u00edt\u00e1sa GitHub Actions kommentb\u0151l (016872ff)<\/li>\n\n\n<li>webpack website link friss\u00edt\u00e9se README-ben (01819bc3)<\/li>\n\n\n<li>Link patchwelcome \u00e9s help wanted issue-khoz (924b7ce8)<\/li>\n\n\n<li>Link az \u00faj CLA-k el\u0151n\u00e9zet\u00e9hez (683ceb8f)<\/li>\n\n\n<li>Hib\u00e1s <code>trac-NUMBER<\/code> referenci\u00e1k jav\u00edt\u00e1sa (eb9ceb2f)<\/li>\n\n\n<li>Lej\u00e1rt linkek elt\u00e1vol\u00edt\u00e1sa r\u00e9gi jQuery source-b\u00f3l (#4997, ed066ac7)<\/li>\n\n\n<li>Web Archive linkek elt\u00e1vol\u00edt\u00e1sa source-b\u00f3l (#4981, e24f2dcf)<\/li>\n\n\n<li><code>#NUMBER<\/code> Trac issue referenci\u00e1k cser\u00e9je <code>trac-NUMBER<\/code>-re (5d5ea015)<\/li>\n\n\n<li>URL friss\u00edt\u00e9se a legfrissebb jQuery buildre CONTRIBUTING.md-ben (9bdb16cd)<\/li>\n\n\n<li>CLA checkbox elt\u00e1vol\u00edt\u00e1sa PR template-b\u0151l (e1248931)<\/li>\n\n\n<li>irc Libera-ra friss\u00edt\u00e9s + LAMP dead link jav\u00edt\u00e1s (175db73e)<\/li>\n\n\n<li>Gyakran jelentett issue-k friss\u00edt\u00e9se GitHub issue template-ben (7a6fae6a)<\/li>\n\n\n<li>JS Foundation eml\u00edt\u00e9sek cser\u00e9je OpenJS Foundationre (11611967)<\/li>\n\n\n<li>SECURITY.md hozz\u00e1ad\u00e1sa, security email c\u00edm megjelen\u00edt\u00e9se (2ffe54ca)<\/li>\n\n\n<li>El\u00edr\u00e1sok jav\u00edt\u00e1sa (1a7332ce)<\/li>\n\n\n<li>jsdom repo link friss\u00edt\u00e9se (a62309e0)<\/li>\n\n\n<li>Hyperlinkek https-re \u00e1ll\u00edt\u00e1sa README-ben (73415da2)<\/li>\n\n\n<li>Egy event\/alias.js modul eml\u00edt\u00e9s elt\u00e1vol\u00edt\u00e1sa README-b\u0151l (3edfa1bc)<\/li>\n\n\n<li>EdgeHTML issue linkek Web Archive-on kereszt\u00fcl (1dad1185)<\/li>\n\n\n<li>GitHub docs link a repo kl\u00f3noz\u00e1s\u00e1hoz (f1c16de2)<\/li>\n\n\n<li>OS X \u2192 macOS csere README-ben (5a3e0664)<\/li>\n\n\n<li>URL-ek t\u00f6bbs\u00e9g\u00e9nek friss\u00edt\u00e9se HTTPS-re (f09d9210)<\/li>\n\n\n<li>Homebrew link HTTP\u2192HTTPS (e0022f23)<\/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>Felesleges felt\u00e9tel jav\u00edt\u00e1sa .stop()-ban (#4374, 110802c7)<\/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>jQuery.fx.interval elt\u00e1vol\u00edt\u00e1sa (6c2c7362)<\/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>beforeunload eset\u00e9n <code>.preventDefault()<\/code> haszn\u00e1lata (7c123dec)<\/li>\n\n\n<li>Bels\u0151 nat\u00edv event robusztuss\u00e1g n\u00f6vel\u00e9se leverageNative-ben (#5459, 527fb3dc)<\/li>\n\n\n<li>\u00dctk\u00f6z\u00e9sek elker\u00fcl\u00e9se jQuery.event.special \u00e9s Object.prototype k\u00f6z\u00f6tt (bcaeb000)<\/li>\n\n\n<li>Egyszer\u0171s\u00edtett ellen\u0151rz\u00e9s saved data-hoz leverageNative-ben (dfe212d5)<\/li>\n\n\n<li>trigger(focus\/blur\/click) m\u0171k\u00f6dj\u00f6n nat\u00edv handlerekkel (#5015, 6ad3651d)<\/li>\n\n\n<li>Focus\/blur szimul\u00e1ci\u00f3 IE-ben focusin\/focusout-tal (#4856, #4859, #4950, ce60d318)<\/li>\n\n\n<li>Ne t\u00f6rje el a focus triggerel\u00e9st <code>.on(focus).off(focus)<\/code> ut\u00e1n (#4867, e539bac7)<\/li>\n\n\n<li>Focus re-trigger ne f\u00f3kusz\u00e1lja vissza az eredeti elemet (#4382, dbcffb39)<\/li>\n\n\n<li>Ne omoljon \u00f6ssze, ha az elemet blur k\u00f6zben elt\u00e1vol\u00edtj\u00e1k (#4417, 5c2d0870)<\/li>\n\n\n<li>event.which shim elt\u00e1vol\u00edt\u00e1sa (#3235, 1a5fff4c)<\/li>\n\n\n<li>jQuery.event.global elt\u00e1vol\u00edt\u00e1sa (18db8717)<\/li>\n\n\n<li>Esem\u00e9nyek csak olyan objektumokra ker\u00fcljenek, amik t\u00e9nylegesen elfogadnak data-t (#4397, d5c505e3)<\/li>\n\n\n<li>F\u00f3kuszin\/f\u00f3kuszout esem\u00e9nyek shimmel\u00e9s\u00e9nek le\u00e1ll\u00edt\u00e1sa (#4300, 8a741376)<\/li>\n\n\n<li>leverageNative ne regisztr\u00e1ljon duplik\u00e1lt dummy handlereket (eb6c0a7c)<\/li>\n\n\n<li>T\u00f6bb async focus event kezel\u00e9se (#4350, ddfa8376)<\/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>jQuery.cleanData ne hagyjon ki elemeket takar\u00edt\u00e1s k\u00f6zben (#5214, 3cad5c43)<\/li>\n\n\n<li>Teszt \u00e1ltal\u00e1nos\u00edt\u00e1sa IE t\u00e1mogat\u00e1shoz (88690ebf)<\/li>\n\n\n<li><code>$el.html(selfRemovingScript)<\/code> t\u00e1mogat\u00e1sa (#5378) (#5377, 937923d9)<\/li>\n\n\n<li>domManip kiszervez\u00e9se k\u00fcl\u00f6n f\u00e1jlba (ee6e8740)<\/li>\n\n\n<li>HTML kommentek ne legyenek elt\u00e1vol\u00edtva scriptb\u0151l (#4904, 2f8f39e4)<\/li>\n\n\n<li>Script crossorigin attrib\u00fatum tiszteletben tart\u00e1sa DOM manipul\u00e1ci\u00f3ban (#4542, 15ae3614)<\/li>\n\n\n<li>Stringkonkaten\u00e1ci\u00f3 elker\u00fcl\u00e9se buildFragment-ben (9c98e4e8)<\/li>\n\n\n<li>jQuery.htmlPrefilter legyen identity function (90fed4b4)<\/li>\n\n\n<li>Selector: nodeName util haszn\u00e1lata, ahol lehet, m\u00e9retcs\u00f6kkent\u00e9shez (4504fc3d)<\/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>Keres\u00e9si m\u00e9lys\u00e9g n\u00f6vel\u00e9se a \u201eval\u00f3di\u201d offset parent megtal\u00e1l\u00e1s\u00e1hoz (556eaf4a)<\/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 (4f2fae08)<\/li>\n\n\n<li>dist f\u00e1jlok elt\u00e1vol\u00edt\u00e1sa a main branch-r\u0151l (c838cfb5)<\/li>\n\n\n<li>4.0.0-rc.2 (97525193)<\/li>\n\n\n<li>AUTHORS.txt friss\u00edt\u00e9se (c128d5d8)<\/li>\n\n\n<li>Release probl\u00e9m\u00e1k jav\u00edt\u00e1sa 4.0.0-rc.1 ut\u00e1n (a5b0c431)<\/li>\n\n\n<li>dist f\u00e1jlok elt\u00e1vol\u00edt\u00e1sa a main branch-r\u0151l (9d06c6dd)<\/li>\n\n\n<li>4.0.0-rc.1 (586182f3)<\/li>\n\n\n<li><code>npm publish<\/code> futtat\u00e1sa post-release f\u00e1zisban (ff1f0eaa)<\/li>\n\n\n<li>Csak browserless tesztek futtat\u00e1sa release alatt (fb5ab0f5)<\/li>\n\n\n<li>Tesztfuttat\u00e1s ideiglenes letilt\u00e1sa release-n\u00e9l (3f79644b)<\/li>\n\n\n<li>tmp\/release\/dist publik\u00e1l\u00e1sa release-n\u00e9l (#5658, a865212d)<\/li>\n\n\n<li>Build d\u00e1tum jav\u00edt\u00e1sa verificationben + tov\u00e1bbi fejleszt\u00e9sek (53ad94f3)<\/li>\n\n\n<li>dist f\u00e1jlok elt\u00e1vol\u00edt\u00e1sa a main branch-r\u0151l (be048a02)<\/li>\n\n\n<li>4.0.0-beta.2 (51fffe9f)<\/li>\n\n\n<li>Build-ekn\u00e9l a megfelel\u0151 verzi\u00f3 biztos\u00edt\u00e1sa (3e612aee)<\/li>\n\n\n<li>preReleaseBase be\u00e1ll\u00edt\u00e1sa configban (1fa8df5d)<\/li>\n\n\n<li>Pre\/post release scriptek windows fut\u00e1s\u00e1nak jav\u00edt\u00e1sa (5518b2da)<\/li>\n\n\n<li>AUTHORS.txt friss\u00edt\u00e9se (862e7a18)<\/li>\n\n\n<li>Release folyamat migr\u00e1ci\u00f3ja release-it-re (jquery\/jquery-release#114, 2646a8b0)<\/li>\n\n\n<li>Factory f\u00e1jlok hozz\u00e1ad\u00e1sa release disztrib\u00faci\u00f3hoz (#5411, 1a324b07)<\/li>\n\n\n<li>buildDefaultFiles k\u00f6zvetlen haszn\u00e1lata + verzi\u00f3 \u00e1tad\u00e1sa (b507c864)<\/li>\n\n\n<li>dist-module mappa m\u00e1sol\u00e1sa (63767650)<\/li>\n\n\n<li>Csak verzi\u00f3zott f\u00e1jlok publik\u00e1l\u00e1sa CDN-re (3a0ca684)<\/li>\n\n\n<li>Scriptek \u00e9s dev dep-ek elt\u00e1vol\u00edt\u00e1sa dist package.json-b\u00f3l (7eac932d)<\/li>\n\n\n<li>Build parancs friss\u00edt\u00e9se Release.generateArtifacts-ben (3b963a21)<\/li>\n\n\n<li>md5 checksum t\u00e1mogat\u00e1s Windows alatt (f088c366)<\/li>\n\n\n<li>Ne kelljen global grunt telep\u00edt\u00e9s (b2bbaa36)<\/li>\n\n\n<li>Release dependency-k friss\u00edt\u00e9se (967af732)<\/li>\n\n\n<li>Nem haszn\u00e1lt chalk dependency elt\u00e1vol\u00edt\u00e1sa (bfb6897c)<\/li>\n\n\n<li>Repo-n bel\u00fcli dist README fixture haszn\u00e1lata (358b769a)<\/li>\n\n\n<li>AUTHORS.txt friss\u00edt\u00e9se (1b74660f)<\/li>\n\n\n<li>AUTHORS.txt friss\u00edt\u00e9se (cf9fe0f6)<\/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><code>:has<\/code> workaround elt\u00e1vol\u00edt\u00e1sa; tesztek iPhone-on \u00e9s iPad-en (65e35450)<\/li>\n\n\n<li><code>jQuery.expr[ &quot;:&quot; ]<\/code>\/<code>jQuery.expr.filters<\/code> helyes deprecated jel\u00f6l\u00e9se (329661fd)<\/li>\n\n\n<li><code>selector.js<\/code> f\u00fcggj\u00f6n <code>attributes\/attr.js<\/code>-t\u0151l (#5379, e06ff088)<\/li>\n\n\n<li>selector.js f\u00fcgg\u0151s\u00e9gek elimin\u00e1l\u00e1sa t\u00f6bb modulb\u00f3l (e8b7db4b)<\/li>\n\n\n<li>jQuery.find.{tokenize,select,compile,setDocument} \u00fajra export\u00e1l\u00e1sa (#5259, 338de359)<\/li>\n\n\n<li>Ne t\u00e1maszkodjon <code>CSS.supports( &quot;selector(...)&quot; )<\/code>-ra (#5194, 68aa2ef7)<\/li>\n\n\n<li>jQuery selection context logika backport selector-native-hoz (#5185, 2e644e84)<\/li>\n\n\n<li>Selector list\u00e1k m\u0171k\u00f6djenek \u00fajra <code>qSA<\/code>-val (#5177, 09d988b7)<\/li>\n\n\n<li><code>uniqueSort<\/code> chainable met\u00f3dus implement\u00e1l\u00e1sa (#5166, 5266f23c)<\/li>\n\n\n<li>selector-native.js visszahoz\u00e1sa (4c1171f2)<\/li>\n\n\n<li>Manipulation: DOM manipul\u00e1ci\u00f3 jav\u00edt\u00e1sa template contents eset\u00e9n (#5147, 3299236c)<\/li>\n\n\n<li>Legacy pseudos t\u00e1mogat\u00e1s eldob\u00e1sa, custom pseudos tesztel\u00e9se (8c7da22c)<\/li>\n\n\n<li>jQuery <code>:has<\/code> haszn\u00e1lata, ha <code>CSS.supports(selector(...))<\/code> nem kompatibilis (#5098, d153c375)<\/li>\n\n\n<li>&#8222;a:enabled&#8221; workaround elt\u00e1vol\u00edt\u00e1sa Chrome <=77-re (c1ee33ad)<\/li>\n\n\n<li>\u00dcres attrib\u00fatum selectorok m\u0171k\u00f6djenek \u00fajra IE-ben (#4435, 05184cc4)<\/li>\n\n\n<li>Shallow document comparison uniqueSort-ban (#4441, 15750b0a)<\/li>\n\n\n<li>Teszt a post-comma invalid selectorok dob\u00e1s\u00e1ra (6eee5f7f)<\/li>\n\n\n<li>Leading combinatorral indul\u00f3 selectorok haszn\u00e1lj\u00e1k \u00fajra qSA-t (ed66d5a2)<\/li>\n\n\n<li>Shallow document comparison IE\/Edge crash elker\u00fcl\u00e9s\u00e9re (#4441, aa6344ba)<\/li>\n\n\n<li>M\u00e9retcs\u00f6kkent\u00e9s, setDocument egyszer\u0171s\u00edt\u00e9s (29a9544a)<\/li>\n\n\n<li>:scope pseudo-class haszn\u00e1lata, ahol lehet (#4453, df6a7f7f)<\/li>\n\n\n<li>querySelectorAll shortcut visszahoz\u00e1sa (cef4b731)<\/li>\n\n\n<li>Sizzle inline-ol\u00e1sa a selector modulba (47835965)<\/li>\n\n\n<li>Sizzle tesztek portol\u00e1sa jQuery-be (79b74e04)<\/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>support div display legyen block (#4832, 09f25436)<\/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><code>contents()<\/code> jav\u00edt\u00e1sa <code>&lt;object&gt;<\/code> elemekn\u00e9l gyermekekkel IE-ben (ccbd6b93)<\/li>\n\n\n<li><code>contents()<\/code> jav\u00edt\u00e1sa <code>&lt;object&gt;<\/code> elemekn\u00e9l gyermekekkel (#4384, 4d865d96)<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00d6sszefoglal\u00e1s: kinek \u00e9rdemes l\u00e9pni, \u00e9s mire figyelj<\/h2>\n\n\n\n<p>A jQuery 4.0.0 egy klasszikus \u201enagytakar\u00edt\u00f3s\u201d nagyverzi\u00f3: kevesebb legacy, modernebb build (ES modules + Rollup), biztons\u00e1gi szempontb\u00f3l fontos CSP\/Trusted Types ir\u00e1ny, \u00e9s n\u00e9h\u00e1ny r\u00e9g\u00f3ta esed\u00e9kes API-kivezet\u00e9s. A legkock\u00e1zatosabb pontok tipikusan az IE<11 t\u00e1mogat\u00e1s megsz\u0171n\u00e9se, a f\u00f3kusz esem\u00e9nyek sorrendj\u00e9nek v\u00e1ltoz\u00e1sa, illetve a deprecated API-k \u00e9s a prototype-r\u00f3l leker\u00fclt Array met\u00f3dusok. Cser\u00e9be kapsz egyszer\u0171bb k\u00f3dot, kisebb csomagot, \u00e9s egy l\u00e9p\u00e9ssel modernebb jQuery-t.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Hivatkoz\u00e1sok \/ Forr\u00e1sok<\/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:\/\/twitter.com\/kkotowicz\/status\/1445713282128515074\" target=\"_blank\" rel=\"noopener noreferrer\">Trusted Types<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>A jQuery 4.0.0 k\u00f6zel 10 \u00e9v ut\u00e1n az els\u0151 nagyverzi\u00f3: kigyoml\u00e1lt legacy k\u00f3d, friss\u00edtett build-l\u00e1nc ES module-okkal, \u00e9s t\u00f6bb olyan breaking change, amit eddig nem lehetett \u201ecsendes\u201d kiad\u00e1sban megl\u00e9pni.<\/p>\n","protected":false},"author":4,"featured_media":279,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[126],"tags":[128,61,127,130,129],"class_list":["post-281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-csp","tag-javascript","tag-jquery","tag-npm","tag-trusted-types"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/media\/279"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}