linkCheckbox/radiostateina。

trigger()edclickeventWhentheuserclicksonacheckboxorradiobutton,theeventhandlerseesthenodeinthestateitwillbeinifevent。

preventDefault()isnotcalledonthenode–inessence,itsnewstate。

Soforexample,iftheuserclicksonanuncheckedcheckbox,theeventhandlerwillseeacheckedbox。

Before1。

9,asyntheticeventtriggeredbyeither。

trigger(click)or。

click()wouldseethecheckboxintheoppositestatethanthatofauseraction。

Thishasbeenfixedin1。

9toreflectthesamecheckedstateasauser-initiatedaction。

linkOrderoftriggeredfocuseventsWhentheuserclicksortabsintoaformelementtobringitintofocus,thebrowserfirstfiresablureventforthepreviouslyfocusedelementandthenafocuseventforthenewelement。

Priorto1。

9,atrigger()edfocuseventusingeither。

trigger(focus)or。

focus()wouldfireafocuseventforthenewelementandthentheblureventforthepreviouselementbeforefinallyactuallyfocusingtheelement。

In1。

9thisbehaviorhasbeenchangedtoreflectthesameorderasiftheuserhadcausedthefocuschange。

WithnativeDOMfocusevents,thebrowseronlycallsafocuseventhandlerifthetargetelementisnotalreadyfocusedandcanalsosuccessfullybefocused。

jQueryhasalwaysensuredthatacallto。

trigger(focus)or。

focus()consistentlyrunsanyattachedeventhandlers,eveniftheelementcannotbefocused,andjQuery1。

9continuestodothat。

ThisisdifferentbehaviorthantheDOM。

focus()method,whichwillnotcalleventhandlersinmanycasesincludingwheretheelementisalreadyfocusedortheelementisdisabled。

Unfortunately,allversionsofInternetExplorer(6through10)firefocuseventsasynchronously。

Whenyou。

trigger(focus)inIE,jQuerywontseetheasyncfocuseventwhichwilloccurlater,soitfiresoneofitsowntoensurethatafocuseventalwaysoccursasdescribedabove。

Thiscausestwocallstotheeventhandler。

Toavoidthisdouble-call–butriskthattheeventhandlerisnotcalledatall–usetheDOMfocusmethoddirectly,e。

g。

$(selector)。

get(0)。

focus()。

linkjQuery(htmlString)versusjQuery(selectorString)Priorto1。

9,astringwouldbeconsideredtobeanHTMLstringifithadHTMLtagsanywherewithinthestring。

Thishasthepotentialtocauseinadvertentexecutionofcodeandrejectvalidselectorstrings。

Asof1。

9,astringisonlyconsideredtobeHTMLifitstartswithaless-than()character。

TheMigrateplugincanbeusedtorestorethepre-1。

9behavior。

IfastringisknowntobeHTMLbutmaystartwitharbitrarytextthatisnotanHTMLtag,passittojQuery。

parseHTML()whichwillreturnanarrayofDOMnodesrepresentingthemarkup。

AjQuerycollectioncanbecreatedfromthis,forexample:$($。

parseHTML(htmlString))。

ThiswouldbeconsideredbestpracticewhenprocessingHTMLtemplatesforexample。

Simpleusesofliteralstringssuchas$(pTesting/p)。

appendTo(body)areunaffectedbythischange。

Bottomline:HTMLstringspassedtojQuery()thatstartwithsomethingotherthanaless-thancharacterwillbeinterpretedasaselector。

Sincethestringusuallycannotbeinterpretedasaselector,themostlikelyresultwillbeaninvalidselectorsyntaxerrorthrownbytheSizzleselectorengine。

UsejQuery。

parseHTML()toparsearbitraryHTML。

WhenthejQueryMigratepluginisused,itwillusetheoldrulesfordeterminingifthestringpassedto$()lookslikeHTML。

linkEventsnotfiredbythe。

data()method;nameswithperiodsThe。

data()methodhadanundocumentedandincrediblynon-performantwaytomonitorsettingandgettingofvaluesthatwasremovedin1。

9。

Thishasaffectedtheinterpretationofdatanamesthatcontainperiods,inagoodway。

Asof1。

9,acallto。

data(abc。

def)retrievesthedataforthenameabc。

defonly,andneverjustabc。

Notethatthelower-leveljQuery。

data()methodneversupportedeventsandsoithasnotchanged。

ThejQueryMigrateplugindoesnotrestoretheoldbehaviorforthiscase。

linkOrderingofdisconnectednodeswithinajQuerysetFormanyversions,nearlyalljQuerymethodsthatreturnnewsetsofnodesusethedocumentordertosorttheresultingset。

(Thereareafewmethodssuchas。

parents(),whichreturnsitsresultsinreverse-documentorder,butthoseexceptionsarealreadydocumentedandhavenotchangedin1。

9。

)

Before1。

9,setsthatcontainedsomeconnectedandsomedisconnectednodeswouldbesortedinconsistently,dependingonwhetheradisconnectednodeledtheoriginalunsortedset。

Asof1。

9,connectednodesarealwaysplacedatthebeginningofthesetindocumentorder,anddisconnectednodesareplacedbehindthem。

ThejQueryMigrateplugindoesnotrestoretheoldbehavior,whichwassomewhatrandomandunpredictable。

linkLoadingandrunningscriptsinsideHTMLcontentPriorto1。

9,anyHTML-acceptingmethod(e。

g。

$()。

append(),or。

wrap())executedanyscriptsintheHTMLandremovedthemfromthedocumenttopreventthemfrombeingexecutedagain。

Thisstillbrokeinsituationswhereascriptmightberemovedandreinsertedintothedocumentusingmethodssuchas。

wrap()。

Asof1。

9,scriptsinsertedintoadocumentareexecuted,butleftinthedocumentandtaggedasalreadyexecutedsotheywontbeexecutedagaineveniftheyareremovedandreinserted。

Despitethischange,itisverypoorpracticetomixexecutableJavaScriptintoHTMLmarkup;ithasdesign,security,reliability,andperformanceimplications。

Forexample,externalscripttagsincludedinHTMLarefetchedsynchronouslyandthenevaluated,whichcantakeasignificantamountoftime。

Thereisnointerfacetonotifywhenorwhetherthosescriptsload,ortotakecorrectiveactionswhenthereisanerror。

Codethatattemptstoloadascriptbycloninganexistingscripttagandinjectingthatcloneintothedocumentwillnolongerwork,becausetheclonedscripttaghasalreadybeenmarkedasexecuted。

Toloadanewscript,usejQuery。

getScript()instead。

link。

attr()versus。

prop()jQuery1。

6introducedthe。

prop()methodforsettingorgettingpropertiesonnodesanddeprecatedtheuseof。

attr()tosetproperties。

However,versionsupto1。

9continuedtosupportusing。

attr()forspecificsituations。

Thisbehaviorinthenameofbackwardscompatibilitycausesconfusionwhenselectorsareusedthatdistinguishbetweenattributesandproperties。

Forexample,booleanattributessuchascheckedanddisabledonacheckboxareaffectedbythischange。

Thecorrectbehaviorofinput[checked]istoselectcheckboxesthathaveacheckedattribute,regardlessofitsstringvalue,andregardlessoftheircurrentstate。

Incontrast,input:checkedselectscheckboxesthatarecurrentlycheckedasreflectedintheirboolean(trueorfalse)checkedproperty,whichisaffectedwhentheuserclickstheboxforexample。

Versionspriorto1。

9sometimesdonotselectthecorrectnodeswiththeseselectors。

Herearesomeexamplesofcorrectusagewhensettingcheckedonacheckbox;thesamerulesapplyfordisabled。