→ mifano ya jQuery kwa Kompyuta
jQuery ni maktaba ya javascript inayojumuisha vitendaji vya kivinjari - vifungashio vya kudhibiti vipengee vya DOM (Mfano wa Kitu cha Hati). Kanuni yake kuu ni matumizi ya moja kwa moja ya utaratibu unaohitajika, kulingana na kivinjari. Kwa mfano, kupata kipengele cha html cha hati kwa kitambulisho hutokea kwa njia tofauti katika vivinjari tofauti. Kabla ya jQuery, nilitumia kazi hii:
Kazi getObj(objID)( if (document.getElementById) (return document.getElementById(objID);) vinginevyo ikiwa (document.all) (return document.all;) vinginevyo ikiwa (document.layers) (return document.layers;) )
Ili kufanya kitendo sawa katika jQuery, fanya hivi:
$("#objID") au jQuery("#objID")
Kupiga simu $() kazi ni sawa na jQuery() , kwani ya kwanza ni lakabu kwa ya pili. Ikiwa hautumii maktaba zingine kama jQuery, unaweza kufikia nafasi ya majina kwa usalama kupitia $(). Vinginevyo, ni bora kutumia jina la moja kwa moja la kitu - jQuery. Zaidi ya hayo, tunafikiri kwamba hakuna maktaba nyingine.
Kuanza na jQueryBasi hebu tuanze. Hatua ya kwanza ni kupata toleo jipya zaidi la maktaba ya jQuery kutoka kwa tovuti rasmi ya mradi http://jquery.com/ au pakua jQuery hapa. Kuna matoleo mawili kwenye kumbukumbu na kwenye tovuti rasmi: iliyoshinikizwa na kuendelezwa. Kwenye wavuti ni bora kutumia iliyoshinikwa, na ikiwa unataka kujaribu, tumia ya pili. Kwanza kabisa, tunajumuisha maktaba ya jQuery kwenye mwili wa ukurasa:
Baada ya hayo, nafasi ya majina ya javascript inafafanuliwa kwa njia ambayo simu kwa $() kazi inachukuliwa na jQuery na unaweza kupata kitu chochote cha hati ya html kama kitu kwa kutumia usemi $("#objID") . Ambapo objID ni kitambulisho cha kitu.
jQuery na CSSKama mfano wa kwanza, hebu tuangalie jinsi jQuery na CSS zinavyofanya kazi. Kuna njia mbili kuu za kuendesha CSS kwa kutumia jQuery: kubadilisha sifa moja au kadhaa mara moja. Zinatekelezwa kupitia css() kazi. Kwa nadharia inaonekana kitu kama hiki:
$("#objID").css("onyesha","block") $("#objID").css(( display:"block, margin:"10px", color:"#ffffff" ))
Mfano wa kubadilisha sifa moja ya CSSMfano wa kubadilisha sifa moja ulikuwa wa mafanikio!
Chanzo:
Mfano wa kubadilisha sifa moja ulikuwa wa mafanikio!
Mfano wa kubadilisha sifa nyingi za CSSMfano wa kubadilisha sifa nyingi!
Chanzo:
function demo_css())( $("#span2").css(( color:"#ffffff", padding:"5px", background:"#980000" )); ) Mfano wa kubadilisha sifa nyingi!
Kubadilisha maandishi na htmlIli kubadilisha maandishi au msimbo wa html, kuna vitendaji text() na html() .
$("#objID").text("True la la") $("#objID").html("
Kweli la
Zaidi ya hayo, ukijaribu kuingiza msimbo wa HTML kwa kutumia maandishi () kazi, utaipokea katika hali yake ya asili. Nakala() kazi huepuka kila kitu.
Nakala () mfanoChanzo:
kazi set_text())( $("#span3").text("Asante!");)
Mfano wa kutumia html()Chanzo:
function set_html())( $("#span4").html("Asante! Hii ni bora zaidi."); )
Kusimamia Sifa na jQueryattr() chaguo za kukokotoa hudhibiti sifa za kipengele chochote. Kwa msaada wake unaweza kuongeza au kubadilisha kichwa, href, thamani, src na kadhalika.
Attr() mfanoChanzo:
kazi plus_ten())( var cur_value = $("#text").attr("thamani"); cur_value = parseInt(cur_value) + 10; $("#text").attr("thamani",cur_value); )
Washughulikiaji wa Tukio katika jQueryOrodha kamili inapatikana katika http://api.jquery.com/category/events/. Nitatoa mifano michache tu. Kidhibiti cha mbofyo cha kawaida zaidi cha tukio. Katika jQuery unaweza kuikata kupitia click() kazi.
Bonyeza () MfanoChanzo:
$("#butt").click(function())( alert("Je, uliamua kuiangalia?"); ));
Keyup () mfanoIngiza kitu:
Uliingiza:
Chanzo:
Ingiza kitu:
Umeweka: $("#text2").keyup(function())( ikiwa ($("#text2").val())( $("#text2_target").css((chinichini:"#980000" )); ) mwingine ( $("#text2_target").css((chinichini:"#ffffff")); ) $("#text2_target").maandishi($("#text2").val()); ));
Bonyeza juu yangu!
Chanzo:
div#log( background:#1C93A5; width:300px; height:100px; padding:10px; color:#fff; ) Bofya kwangu!
$(document).ready(function() ( $("#logi").bind("bofya", kazi(e) ( $("#coord").html("X coordinate: "+ e.pageX + " Y kuratibu: " + e.pageY + ""); )); ));
JQuery ni maktaba kubwa. Ilisaidia kuzuia mitego yote ya IE6 kikamilifu. Hapo awali, uoanifu wa vivinjari mbalimbali lilikuwa tatizo kubwa linalowakabili wasanidi programu. JQuery ilikabiliana vyema na tofauti zote katika kuonyesha mipangilio katika vivinjari tofauti.
Leo, vivinjari vina suluhisho bora za umoja. Tunaweza kutumia haki zote za ES5 kwa raha, na pia tunayo HTML5 API, ambayo hurahisisha zaidi kuchakata vipengele vya DOM. Wasanidi programu wako kwenye hatihati ya kusahaulika na wanaondoka kwenye jQuery kwa baadhi ya miradi. Hasa katika kesi ya microservices na mipango isiyo ngumu.
Usinielewe vibaya - JQuery bado ni maktaba nzuri sana, na bila shaka, 70% ya wakati itabidi uitumie. Ingawa kwa kurasa ndogo zilizo na JS ndogo, unaweza kutumia VanillaJS au mfumo mwingine. Hizi zinafaa kwa programu za rununu.
Kweli, hapa kuna mifano 10 ya nambari ya kufanya kazi ambayo unaweza kufanya bila jQuery.
Kufuatilia upakiaji wa ukurasa kukamilika tukioJambo la kwanza unalofanya unapotumia jQuery ni kufunga msimbo kwa $(document).ready() mbinu ili kujua wakati DOM iko tayari kudanganywa. Bila JQuery, tunaweza kutumia tukio la DOMContentLoaded. Hapa kuna mfano wa nambari:
// Sikiliza tukio la DOMContentLoaded kwa hati nzima, na chaguo la kukokotoa lisilojulikana // Unaweza kufunga msimbo wako kwenye mikono ya chaguo hili la kukokotoa // na itatekeleza ukurasa unapopakiwa. document.addEventListener("DOMContentLoaded", chaguo la kukokotoa () ( // hodi yetu ya Kihawai, itaonyeshwa kwenye kiweko cha kiweko.log("Aloha"); ));
Viteuzi vya kipengele bila JQuerySiku moja, tutalazimika kuchagua vipengee kwa kutumia kitambulisho, darasa au vitambulisho, na jQuery ni mojawapo bora zaidi. Viteuzi ambavyo vinafanana kabisa na sintaksia ya CSS. Leo, vivinjari vimeanzisha API mbili muhimu - querySelector na querySelectorAll.
// Unaweza kutumia document.querySelector kupata kipengele cha kwanza kinacholingana na vigezo // inachukua hoja moja tu - wateuzi wa CSS. var lochNess = document.querySelector(".monsters"); console.log("Inatoka Uskoti - " + lochNess.textContent); // tunaweza pia kupata mkusanyiko kwa kutumia document.querySelectorAll. // inarejesha orodha ya vipengele vya dom vinavyolingana na kigezo var scary = document.querySelectorAll(" .monsters") ; console.log("Ficha na utafute mabingwa: "); kwa (var i = 0; i< scary.length; i++) { console.log(scary[i].innerHTML); }
- Nessy
- Mguu mkubwa
- La chupacabra
Kusikiliza matukio ni sehemu ya msingi ya kujenga programu za wavuti. Kihistoria, kumekuwa na kambi mbili kubwa - IE na zingine. Lakini leo, tunatumia tu addEventListener
Var btn = document.querySelectorAll("button"), list = document.querySelector("ul"); // Piga simu addEventListener kwenye tukio unalotaka. // huanza kufuatilia tukio la kubofya kwenye kipengele. btn.addEventListener("bonyeza", kazi () ( // Kitufe kinapobofya, tunataka kuanzisha kiwango cha tukio kwenye orodha yetu. // Ili kufanya hivyo, tunahitaji kuongeza tukio kwenye orodha yetu // ili kipanya kinapoelea juu ya kipengele, chaguo la kukokotoa litawaka. list .addEventListener("mouseover", enlarge); )); // Ili kughairi tukio la kukuza, tumia removeEventListener. btn.addEventListener("bonyeza", kitendakazi () ( // Kuondoa matukio hakutafanya kazi na vitendakazi ambavyo havijatajwa majina, tumia vilivyotajwa tu list.removeEventListener("mouseover", enlarge); )); // Wacha tuunde kazi ambayo itaongeza. var enlarge = kazi () ( // Ongeza darasa kwa vipengele list.classList.add("zoomed"); // wakati kielekezi kinaondoka kwenye orodha, ondoa darasa ili urudi kwenye orodha ya mizani ya kawaida.addEventListener("mouseout ", kazi ( ) ( list.classList.remove("zoomed")); ); // Sasa tunataka kuangazia majina wakati umebofya. // Mbofyo unapoanzishwa kwenye kipengee, kinapaswa kugeuka kijani kibichi // Shukrani kwa uwakilishi wa tukio, tunaweza kuongeza tu kidhibiti kwenye kipengele cha mzazi // Kwa njia hii, hatutaunda wasikilizaji wa tukio kwa kila moja.
Washa ukuzaji Zima ukuzaji
Bofya kwenye jina ili kuliangazia
- Chewbacca
- Han Solo
- Luka
- Boba fett
Kijani ( rangi: kijani; ) .iliyokuza ( mshale: pointer; ukubwa wa fonti: 23px;)
addEventListener alitumia hoja ya tatu, lakini hii ni hiari. Kama unaweza kuona, nambari inaonekana sawa na jQuery.
Kuongeza, kuondoa madarasa bila jQuery katika JS safiKusimamia madarasa ya vipengee bila jQuery ilikuwa shida kubwa katika siku za zamani. Lakini sivyo tena. Shukrani kwa mali ya classList. Na ikiwa unahitaji kubadilisha sifa, unaweza kutumia setAttribute.
Var btn = document.querySelectorAll("button"), div = document.querySelector("#myDiv"); btn.addEventListener("click", kazi () ( // njia rahisi ya kupata sifa za kipengele console.log(div.id); )); // Element.classList huhifadhi madarasa yote ya vipengele kutoka kwa DOMTokenList. var madarasa = div.classList; btn.addEventListener("bonyeza", kazi () ( console.log(classes); )); btn.addEventListener("bofya", kazi () ( // Kuongeza na kuondoa madarasa.add("nyekundu");)); btn.addEventListener("bofya", kazi () ( // Geuza class classes.toggle("fidden"); ));
Kitambulisho cha kuonyesha Madarasa ya rangi nyekundu Geuza mwonekano
Mraba ( upana: 100px; urefu: 100px; ukingo-chini: 20px; mpaka: 1px kijivu thabiti; kipenyo cha mpaka: 5px; ) .imefichwa ( mwonekano: siri; ) .nyekundu ( rangi ya usuli: nyekundu; )
Kupata na kubadilisha maudhui ya HTML ya kipengelejQuery ina njia za urahisi text() na html(). Badala yake, unaweza kutumia maandishiYaliyomo na sifa za innerHTML, ambazo zimekuwepo tangu muda mrefu kabla ya jQuery.
Var myText = document.querySelector("#myParagraph"), btn = document.querySelectorAll("kifungo"); // Kwa njia hii unaweza kupata kwa urahisi maandishi yote ya kipengele mti var myContent = myText.textContent; console.log("textContent: " + myContent); // Tumia textContent kuchukua nafasi ya maandishi ya kipengele // kuondoa ya zamani, na kuweka maandishi mapya btn.addEventListener("click", kazi () ( myText.textContent = " Koalas ni wanyama bora "; )); // Ikiwa tunahitaji HTML ya kipengele, tumia innerHTML. var myHtml = myText.innerHTML; console.log("innerHTML: " + myHtml); // Ili kuchukua nafasi ya html, toa tu btn.addEventListener mpya("click", kazi () ( myText.innerHTML = " Penguins ni wanyama bora zaidi "; ));
Ni wanyama gani bora?
KoalaPenguins Kuingiza mpya na kufuta vipengele vilivyopo
Licha ya ukweli kwamba JQuery hurahisisha sana kazi kwa kuongeza na kuondoa vitu, hakuna mtu alisema kuwa hii haiwezi kufanywa kwa msimbo safi wa JavaScript. Huu hapa ni mfano wa jinsi ya kuongeza, kuondoa, au kubadilisha kipengele kwenye ukurasa.
Var lunch = document.querySelector("#lunch"); // Wacha tuseme tuna menyu ya chakula chetu cha mchana // Wacha tuongeze kitu kwake var addFries = kazi () ( // Kwanza tunaunda kipengee na kuijaza na yaliyomo var fries = document.createElement("div"); fries .innerHTML = "
Ongeza kukaanga kwenye chakula cha mchana Ongeza jibini kwenye sandwich Ondoa kachumbari Chakula Changu cha Mchana
- Sandwich yangu
- Mkate
- Kachumbari
- Nyama ya ng'ombe
- Mayo
- Mkate
Pamoja na ujio wa jQuery, waandaaji wa programu za wavuti wana fursa ya kuunda athari za kuvutia za kuona bila kutumia teknolojia ya flash. Nakala hii inatoa mifano kadhaa ya kushangaza ya matokeo gani ya kushangaza yanaweza kupatikana kwa kutumia zana za kawaida za kivinjari na mawazo yako.
Athari iliyopangwa vizuri ambayo inakuwezesha kupanua sehemu ya picha ambayo mshale utakuwa iko. Katika vivinjari visivyojulikana na CSS3, glasi ya kukuza itakuwa mraba.
![](https://i0.wp.com/habrastorage.org/storage/47211789/1d1ac52b/e8d6b9ea/59805806.jpg)
Kitelezi hiki kina njia nane tofauti za kugeuza picha, ambayo kila moja inafurahisha jicho na mienendo yake iliyosafishwa vizuri.
![](https://i2.wp.com/habrastorage.org/storage/05d8715a/789e0e7c/7a521e63/410f5103.jpg)
![](https://i1.wp.com/habrastorage.org/storage/e81d35e9/7a685b81/22d3597a/406d2883.jpg)
![](https://i1.wp.com/habrastorage.org/storage/2fcba12c/849b97ab/7781143a/032b6874.jpg)
Si mara nyingi sana kwamba unakutana na tovuti ambayo ina vipengele vingi vya pande zote. Programu-jalizi ya Urambazaji Viputo hukuruhusu kuunda urambazaji unaobadilika kulingana na miduara pekee.
![](https://i1.wp.com/habrastorage.org/storage/f0b57126/bce96928/fd287aa8/d3c12b21.jpg)
![](https://i0.wp.com/habrastorage.org/storage/ec48f81b/8808e6c8/4400302a/e5b5bb34.jpg)
Inakuruhusu kuzindua vipengele vya ukurasa karibu na mduara, na katika ndege tofauti za nafasi.
![](https://i1.wp.com/habrastorage.org/storage/42dd0cbc/86a59eea/3ca9f6d3/98fee95d.jpg)
Programu-jalizi ya Flip hukuruhusu kugeuza vipengele kana kwamba ni kadi.
![](https://i2.wp.com/habrastorage.org/storage/e2774c4a/7285ba4d/2a01d01e/370bb352.jpg)
Matunzio ya picha yasiyo rasmi. Onyesho la kukagua yaliyomo ni kundi la picha zilizotawanyika zilizopigwa kwa kamera ya Polaroid.
![](https://i1.wp.com/habrastorage.org/storage/723480f3/9d33bf0f/caf005ad/0f95b22c.jpg)
Slider rahisi lakini nzuri sana ya picha.
![](https://i1.wp.com/habrastorage.org/storage/b4011dd6/25968b1f/9c21fb6f/c6ce6ddc.jpg)
Onyesho la slaidi lenye picha zinazosonga angani.
![](https://i1.wp.com/habrastorage.org/storage/c36e93b8/26327b0e/649bed26/a824422f.jpg)
Njia ya kuvutia sana ya kutengeneza orodha ya bidhaa inayoingiliana.
![](https://i0.wp.com/habrastorage.org/storage/52708187/d4e73b38/971615e3/c2c71ea9.jpg)
![](https://i2.wp.com/habrastorage.org/storage/012bbcc4/3952b789/1e0b1708/28195c54.jpg)
Inakuruhusu kupiga picha za sehemu binafsi za picha kwenye ukurasa. Bofya kwenye sehemu inayotakiwa ya picha na uone matokeo kwenye skrini.
![](https://i2.wp.com/habrastorage.org/storage/e289dc60/326b6d5f/b9375a4d/d26158d2.jpg)
Programu-jalizi ya Quicksand itakuruhusu kupanga na kuchuja seti ya vipengee kwa kutumia madoido ya hali ya juu sana.
![](https://i2.wp.com/habrastorage.org/storage/4783a655/74279bfe/b6f9b224/b011e3f2.jpg)
Programu-jalizi hii itakuwa muhimu sana kwa kuunda maelezo ya kina ya vitu ngumu na ziara za maingiliano inapohitajika, huku ikichukua nafasi kidogo iwezekanavyo ili kutoa kiasi kikubwa cha habari.
![](https://i2.wp.com/habrastorage.org/storage/8021ebac/628e49d8/4477d7f4/b55795fd.jpg)
Programu-jalizi ya visanduku vya kutelezesha itakusaidia kuunda matunzio yasiyo ya kawaida ya picha zenye manukuu.
![](https://i2.wp.com/habrastorage.org/storage/249b62a3/e8b74919/8b727f1d/ad47c036.jpg)
Matunzio ya picha ambayo vipengee vyake vitatokea kwa furaha unapoelea juu yake.
Katika nakala hii, tutaangalia njia za mkato za AJAX za jQuery: pakia, pata, pataJSON, getScript na chapisho. Njia hizi hurahisisha sana kutekeleza maombi muhimu ya AJAX na, tofauti na kazi ya ajax, zinahitaji mistari michache ya msimbo kuandika.
jQuery - njia ya kupakiaMbinu ya upakiaji imeundwa kurejesha data kutoka kwa seva katika URL maalum na kuiweka katika kipengele kimoja au zaidi zilizochaguliwa.
Njia ya upakiaji ina syntax ifuatayo:
Pakia(url [,data] [,kamili]) // vigezo katika mabano ya mraba ni hiari //url - mfuatano ulio na URL ambayo ombi lazima litumike //data (kigezo cha hiari) - data ambayo lazima itumwe kwa seva (katika muundo wa kamba au kitu) // kamili - vitendo vya ziada ambavyo lazima vifanyike baada ya ombi kukamilika (iliyoainishwa kwa kutumia kazi ya Kazi(responseText, textStatus, xhr) // majibuText - majibu ya seva // textStatus - hali ya majibu // xhr - XMLHTTPOmba kitu
Mara nyingi, njia ya upakiaji hutumia GET kutuma ombi. Lakini pia inaweza kutumia njia ya POST. Hii hutokea tu wakati data ya kutumwa kwa seva imebainishwa sio katika muundo wa kamba, lakini kupitia kitu.
Mifano ya kutumia njia ya mzigo1. Ingiza yaliyomo kwenye faili asidenav.tpl kwenye kizuizi chenye id="asidenav" baada ya DOM ya ukurasa kupakia:
... // baada ya kupakia DOM ya ukurasa $(function() ( // ingiza maudhui ya faili asidenav.tpl kwenye kipengele (#asidenav) // ikiwa faili haiko katika saraka sawa na HTML. hati, basi lazima ueleze zaidi njia kwake $("#asidenav").load("asidenav.tpl");
2. Pakia sehemu ya faili ya demo.html kwenye kipengee unapobofya kitufe kilicho ndani yake:
Pata maudhui ya demo.html ya faili ... $("#ajaxclick").click(function())( // pakia sehemu ya faili demo.html (#content1) kwenye kipengele id="content1" $. (hii).mzazi() .load("demo.html #content1");
Yaliyomo kwenye faili ya demo.html:
Onyesho la faili.html ......
3. Pakia majibu content.php kwenye kipengele ambacho kina id="result" . Jibu hili litategemea thamani ya sifa ya maudhui ya data ambayo kitufe kilichotuma ombi la AJAX kwa seva inayo.
Pakia maudhui 1 Pakia maudhui 2 Pakia maudhui 3 ... // unapobofya kitufe chenye darasa load-ajax-click $(".load-ajax-content").click(function())( // fafanua thamani ya sifa ya data -content var dataContent = $(this).attr("data-content");// omba data kutoka kwa faili kwa kutumia thamani ya sifa ya maudhui ya data, na itoe kwa kipengele id="matokeo." " if (dataContent) ( $ ("#result").load("content.php","content="+dataContent); ) ));