jQuery¼¼Êõ

jQuery 3.0 Éý¼¶Ö¸ÄÏ ÑÇÖÞ³ÇÏßÉÏÓéÀÖ

×ÖºÅ+ ×÷ÕߣºH5Ö®¼Ò À´Ô´£ºH5Ö®¼Ò 2017-08-23 10:01 ÎÒÒªÆÀÂÛ( )

ca88ÑÇÖÞ³ÇÓéÀÖƽ̨½«ÖØж¨Òå¹öÇò¸÷¸öÔªËØ,ÇãÌýÿ¸öÓû§ÐÄÉù,½ßÁ¦Ñ°Çó×î³öÉ«µÄ·½Ê½½â¾öÑÇÖÞ¿Í»§µÄÕæÕýÐèÇó,ca88ÑÇÖÞ³ÇÓéÀÖƽ̨

jquery-3-0

¸ÅÊö

ÔÚ3.0Ö÷°æ±¾ÖУ¬jQuery CoreÍŶӶÔAPI½øÐиü¸Ä¼°ÇåÀí£¬²¢ÐÞ¸´Ä³Ð©´úÂë¸ü¸ÄÒýÆðµÄbug¡£Õâ°üÀ¨É¾³ýÒÔÇ°ÆúÓõĹ«¿ªAPI£¬¸ü¸Ä»òɾ³ýδ¼Ç¼µÄAPI£¬²¢¸ü¸ÄÏÖÓÐAPIµÄ¼Ç¼»òδ¼Ç¼µÄÐÐΪÓÃÓÚÌض¨ÊäÈë¡£

ä¯ÀÀÆ÷Ö§³Ö

jQuery 3.0 Ö§³ÖÒÔÏÂä¯ÀÀÆ÷£º

jQueryÍŶӲßÂÔÊÇÖ÷°æ±¾¸üÐÂÖ»Õë¶ÔÕâЩä¯ÀÀÆ÷£¬ËùÒÔÕâ¸öä¯ÀÀÆ÷ÁбíÖÁÉÙÖ§³Öµ½jQuery 4¡£

jQuery Migrate ²å¼þ

ÓëjQuery 1.9 / 2.0ÖеÄÖ÷Òª¸ü¸ÄÒ»Ñù£¬ÎÒÃÇÒѾ­´´½¨ÁËÒ»¸öа汾µÄ,ÒÔ¼ò»¯¾É´úÂëǨÒƵ½3.0°æ±¾¡£ÎÒÃÇÇ¿ÁÒ½¨ÒéÄúʹÓÃÕâ¸ö²å¼þ×÷ΪÉý¼¶¹¤¾ß£¬Ëü½«¸ø³ö ¿ÉÄÜÓ°ÏìÄúµÄ´úÂëµÄ¹ØÓÚ´ó¶àÊýÖ÷Òª¸ü¸ÄµÄ¾ßÌ彨Òé¡£

jQuery Migrate²å¼þ 3.0 °æ±¾£¬²»»á¾¯¸æ»ò»Ö¸´ÒÔÇ°Ö÷°æ±¾¸ü¸Ä£¨ÈçjQuery 1.9 / 2.0£©ÖÐɾ³ýµÄÐÐΪ¡£Ê¹ÓÃÒÔϲ½Öè´Ó 1.11.0 »ò 2.1.0 ֮ǰµÄjQuery°æ±¾Éý¼¶µ½3.0а汾£º

²»Ö§³ÖÔÚͬһҳÃæÉÏͬʱÔËÐÐMigrate 1.xºÍMigrate 3.x¡£

µ±Ê¹ÓÃÌض¨µÄ¹ýʱºÍ/»òÒƳýµÄÌØÕ÷ʱ£¬Migrate²å¼þµÄδѹËõ¿ª·¢°æ±¾»áÔÚ¿ØÖÆ̨ÈÕÖ¾ÖÐÊä³öÒÔ¾¯¸æ¡£ÔÚ²éÕÒºÍÐÞ¸´ÏÖÓÐjQuery´úÂëºÍ²å¼þÖеÄÎÊÌâµÄʱºò£¬ËüºÜÓÐÓ㬿ÉÒÔ×÷ΪǨÒƵ÷ÊÔ¹¤¾ß¡£

Migrate²å¼þµÄѹËõ°æ±¾²»»áÉú³ÉÈκξ¯¸æ£¬È»¶øËü·¢³öÒ»¸öµ¥¶ÀµÄ¿ØÖÆ̨ÏûÏ¢£¬¸æËßÎÒÃÇËüÒѾ­±»°²×°ÒýÓã¬ÒÔ¼ò»¯µ÷ÊÔ¡£jQuery 3.0»ò¸ü¸ß°æ±¾µÄÉú²úÕ¾µãÉÏ¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèҪʹÓÃMigrate²å¼þ£¬µ«¶ÔÓھɵIJ»¼æÈݵÄjQuery´úÂë»ò²å¼þÒ²±ØÐëʹÓá£ÀíÏëÇé¿öÏ£¬ÕâÖ»ÊÇ×÷Ϊһ¸ö¶ÌÆÚ½â¾ö·½°¸£¬ÒòΪ»Ö¸´¾ÉµÄÐÐΪ¿ÉÄܻᵼÖÂÓëÔ¤ÆÚÐÂÐÐΪµÄÐÂjQuery´úÂëµÄ³åÍ»¡£

ÖØÒª±ä¸üÕªÒª

jQuery×÷Ϊһ¸ö¹ã·ºÊ¹ÓõÄÀà¿â£¬ÍŶÓͨ³£ºÜÄÑÖªµÀÔÚ·¢²¼Ö®Ç°ÄÄЩ¸ü¸Ä¿ÉÄÜ»áÓ°Ïìµ½¿ª·¢ÈËÔ±¡£¾¡¹ÜÕâ·ÝÃûµ¥ºÜ³¤£¬ÎÒÃÇÈÏΪ´ó¶àÊýÊDZßÔµ°¸Àý¡£Ðí¶àjQueryÏîÄ¿Ó¦¸ÃÄܹ»ÔËÐÐ3.0°æ±¾£¬Èç¹ûÓÐÎÊÌâµÄ»°£¬Ò»°ãÖ»Òª×öÇá΢µÄ¸ü¸Ä¡£

ͨ¹ýÆä×é¼þÀà±ðÁгö¸ü¸Ä£¬²¢ÒÔǰ׺ÃèÊö£¬ÒÔ°ïÖúÄúÁ˽âÆäÓ°Ï죺

Çë¼Çס£¬ÉÏÊöµÄjQuery Migrate²å¼þ¿ÉÒÔ¼ì²âºÍ¾¯¸æÕâЩ¸ü¸Ä£¬ÒÔ±ãËüÃÇ¿ÉÒÔÔÚÏÖÓеĴúÂëÖÐÐÞ¸´¡£

ÓйØËùÓдúÂë¸ü¸ÄµÄÍêÕûÏêϸÁÐ±í£¬Çë²ÎÔÄ jQuery CoreÎÊÌâ¸ú×ÙÆ÷ ÖеÄ3.0¹æ»® »ò°æ±¾²îÒì¡£

Ajax ¸ü¸Ä£ºÌØÊâÇé¿öµÄDeferred·½·¨´ÓjQuery.ajaxÖÐɾ³ý

´ÓjQuery.ajax()·µ»ØµÄjqXHR¶ÔÏóÊÇÒ»¸öjQuery Deferred,²¢ÇÒÀúÊ·ÉÏÓÐÈý¸öÃû³ÆÓë²ÎÊý¶ÔÏóµÄsuccess, error, ºÍ complete ÏàÆ¥ÅäµÄ¶îÍâµÄ·½·¨¡£Õâ¾­³£ÈÃÈËÀ§»ó,·µ»ØµÄ¶ÔÏóÓ¦¸ÃÏñDeferredÒ»Ñù´¦Àí¡£´ÓjQuery 3.0¿ªÊ¼£¬ÕâЩ·½·¨Òѱ»É¾³ý¡£×÷ΪÌæ´ú£¬Ê¹ÓÃDeferred±ê×¼µÄdone£¬failºÍalways·½·¨£¬»òÕßʹÓÃеķûºÏPromises/A+¹æ·¶µÄthen ºÍ catch ·½·¨ ¡£

×¢Òâ,Õâ¶Ôͨ¹ýoptions¶ÔÏ󴫵ݵÄͬÃûµÄajax»Øµ÷¸ù±¾Ã»ÓÐÈκÎÓ°Ï죬ËüÃǼÌÐø´æÔÚ²¢ÇÒ²»»á±»ÆúÓá£ÕâÖ»Ó°ÏìjqXHR·½·¨¡£

https://github.com/jquery/jquery/issues/2084

¸ü¸Ä£º¿çÓò½Å±¾ÇëÇó±ØÐëÉùÃ÷

ͨ¹ýjQuery.ajax()»òjQuery.get()ÇëÇó¿çÓò½Å±¾µÄʱºò,ÄúÏÖÔÚ±ØÐëÔÚÑ¡ÏîÖÐÏÔʽָ¶¨dataType: "script"¡£ÕâÊÇΪÁË·ÀÖ¹Ô¶³ÌÕ¾µãÌṩ·Ç½Å±¾ÄÚÈݹ¥»÷µÄ¿ÉÄÜÐÔ£¬µ«ÉÔºó¾ö¶¨Ìṩ¾ßÓжñÒâÒâͼµÄ½Å±¾¡£ÓÉÓÚjQuery.getScript()ÏÔʽÉèÖÃdataType: "script"£¬ËùÒÔËü²»Êܴ˸ü¸ÄµÄÓ°Ïì¡£

¸ü¸Ä£ºURLÖÐµÄ hash ±£´æÔÚjQuery.ajax()µ÷ÓÃÖÐ

jQuery.ajax()·½·¨²»ÔÙ×Ô¶¯É¾³ýURLÖÐÌṩµÄ hash Öµ£¬²¢½«ÍêÕûµÄURL·¢ËÍ´«Ê䣨xhr£¬script£¬jsonp»ò×Ô¶¨Òå´«Ê䣩¡£Èç¹û·þÎñÆ÷¶ËÎÞ·¨´¦ÀíURLÉϵÄhash£¬ÇëÔÚ·¢ËÍÇëÇó֮ǰɾ³ýËü¡£

https://github.com/jquery/jquery/issues/1732

¹¦ÄÜ£ºjQuery.get()ºÍjQuery.post()Ôö¼ÓеÄÇ©Ãû

jQuery 3 ͨ¹ýÌí¼Ósettings²ÎÊý,ΪjQuery.get()ºÍjQuery.post()º¯ÊýÌí¼ÓÁËÒ»¸öеÄÇ©Ãû¡£ ËüÊÇÒ»¸ö¶ÔÏ󣬿ÉÒÔÓµÓÐÐí¶àÊôÐÔ,ËüºÍÄãÌṩ¸øjQuery.ajax( [settings ] )µÄsettings ¶ÔÏó»ù±¾Ïàͬ(ÓÞÈËÂëÍ·×¢£º typeÑ¡Ï×Ô¶¯ÉèÖÃΪGET£»Áí£ºÊµ¼ÊÉÏÕâ¸öÇ©ÃûµÄÌí¼Ó°æ±¾Îª1.12/2.2)¡£

https://github.com/jquery/jquery/issues/1986

ÊôÐÔ(Attribute) ¸ü¸Ä£º.removeAttr()²»ÔÙÉèÖà property£¨ÌØÐÔÖµ£© Ϊ false

ÔÚjQuery 3.0֮ǰ£¬ÔÚ²¼¶ûÊôÐÔ£¨ÀýÈçchecked, selected, »òÕß readonly£©ÉÏʹÓÃ.removeAttr()·½·¨£¬½«»áÉèÖÃÆäÃû³ÆÏàÓ¦µÄ property£¨ÌØÐÔ£©Îªfalse¡£´ËÐÐΪÔÚInternet ExplorerµÄ¾É°æ±¾ÉÏÊDZØÐèµÄ£¬µ«¶ÔÓÚÏÖ´úä¯ÀÀÆ÷ÊDz»ÕýÈ·
ÒòΪÊôÐÔ£¨attribute£©±íʾ³õʼֵ£¬²¢ÇÒ property£¨ÌØÐÔ£©±íʾµ±Ç°£¨¶¯Ì¬£©Öµ¡£

ÔÚDOMÔªËØÉÏʹÓÃ.removeAttr( "checked" )¼¸ºõ×ÜÊÇ´íÎó¡£Î¨Ò»¿ÉÄÜÓÐÓõÄÇé¿öÊÇ£¬DOMÒÔºóÒª±»ÐòÁл¯»ØHTML×Ö·û´®¡£ÔÚËùÓÐÆäËûÇé¿öÏ£¬Ê¹ÓÃ.prop( "checked", false )´úÌæ¡£

https://github.com/jquery/jquery/issues/1759

https://github.com/jquery/jquery/issues/2913

¸ü¸Ä£º¶àÑ¡ÏÂÀ­¿ò£¨select-multiple£©²»Ñ¡ÔñÑ¡Ï·µ»Ø¿ÕÊý×é

ÔÚjQuery 3.0֮ǰ£¬ÔÚδѡÔñÈκÎÑ¡ÏîµÄ <select multiple> ÔªËØÉϵ÷ÓÃ.val()·µ»Ønull¡£ÕâÊDz»·½±ãµÄ£¬ÒòΪÈç¹ûÑ¡ÔñÖÁÉÙÒ»¸öÑ¡Ï·µ»ØÖµ½«ÊÇÒ»¸öÊý×é¡£´ËÍ⣬Èç¹ûËùÓÐÑ¡Ï±»½ûÓã¬jQuery·µ»ØÖµ½«ÊÇÒ»¸ö¿ÕÊý×顣ΪÁËÌá¸ßÒ»ÖÂÐÔ£¬ÎÞÑ¡ÏîÑ¡ÔñµÄÇé¿öÏÂÏÖÔÚ·µ»ØÒ»¸ö¿ÕÊý×é¡£

https://github.com/jquery/jquery/issues/2562

¹¦ÄÜ£ºSVGÎĵµÖ§³ÖÀàÃû£¨class£©²Ù×÷

SVG´ÓÀ´Ã»Óб»jQueryÍêÈ«Ö§³Ö£¬²¢ÇÒÕâµãÔÚjQuery 3ÖÐûÓиı䡣¾¡¹ÜÈç´Ë£¬Ðí¶àjQuery·½·¨Ò²¿ÉÒÔÔÚSVGÎĵµÉÏʹÓᣴÓjQuery 3¿ªÊ¼£¬²Ù×÷ÀàÃûµÄ·½·¨£¬ÀýÈç .addClass() ºÍ .hasClass()£¬Ö§³ÖSVG¡£

https://github.com/jquery/jquery/issues/2199

ÆúÓ㺲»´ø²ÎÊýµÄ .toggleClass() ºÍ .toggleClass( Boolean )

ËäÈ»Îĵµ¼Ç¼ÁËÕâÁ½ÖÖÇé¿öµÄÇ©Ãû£¬Æäʵ¼ÊÐÐΪ´ÓδÍêÈ«¶¨Òå¡£Õâ¸ö²»Ã÷È·µÄÐÐΪÏÖÔÚÒѱ»·ÏÆú£¬Òò´Ë²»»á±»¼Ç¼¡£Äú¿ÉÄܻᷢÏÖÄú²»Ð¡ÐÄʹÓÃÁ˸ù¦ÄÜ£¬ÒòΪ.toggleClass( undefined )µÄÐÐΪºÍûÓвÎÊýµÄµ÷ÓÃÊÇÏàͬµÄ£¬¼´Ê¹ËüÊÇÎÞЧµÄÊäÈë¡£

»Øµ÷£¨ Callback £© ¹¦ÄÜ£ºSVGÎĵµÖ§³ÖÀàÃû£¨class£©²Ù×÷

Èç¹ûÒ»¸ö»Øµ÷¶ÔÏóÓÐÒ»¸ö´¦Àíº¯ÊýÔÚ.fire()Ö®ºóµ÷ÓÃ.lock()·½·¨£¬ËüÖ»×èֹδÀ´Ö´Ðлص÷ÁÐ±í²¢ÇÒ²»Á¢¼´ÖÐÖ¹µ±Ç°ÁбíµÄÖ´ÐС£ÒªÍ£Ö¹µ±Ç°Ö´ÐУ¬ÇëʹÓÃstopOnFalseÑ¡Ïî¡£

https://github.com/jquery/jquery/issues/1990

Core ¸ü¸Ä£º ÔÚÑϸñģʽÏÂÔËÐÐjQuery 3.0

¡¡

1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎתÔصĸå¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬ÇëתÔØʱÎñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

Ïà¹ØÎÄÕÂ
  • jquery»ù´¡½Ì³ÌÖйØÓÚÄÚ²¿º¯ÊýÎÊÌâ

    jquery»ù´¡½Ì³ÌÖйØÓÚÄÚ²¿º¯ÊýÎÊÌâ

    2017-08-23 09:00

  • jQuery.Validate ʹÓñʼÇ(jQuery Validation·¶Àý )

    jQuery.Validate ʹÓñʼÇ(jQuery Validation·¶Àý )

    2017-08-23 08:02

  • ÈçºÎÓÃjQuery×öÑ¡Ï½çÃæ

    ÈçºÎÓÃjQuery×öÑ¡Ï½çÃæ

    2017-08-22 16:03

  • ¡¶jQuery»ù´¡½Ì³Ì¡·ÖÐÎĵÚËÄ°æ

    ¡¶jQuery»ù´¡½Ì³Ì¡·ÖÐÎĵÚËÄ°æ

    2017-08-22 14:05

ÍøÓѵãÆÀ
¹