1,6 K, bubble.js 1,6 k om gemeenschappelijke problemen op te lossen,,,,,,,,,, 75, 77 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, een in de ontwikkeling van de website van het beheer van de gemeenschappelijke taak is het geval.We horen vaak de javascript is een dom elementen van de gebeurtenissen. , en dit is hoe we toegang tot informatie voor de gebruiker: dat is, hij of zij op de aard van de pagina 's, en wij, als dit gebeurt, moeten we dat weten.Nog een gebeurtenis van luisteraars lijkt onbelangrijk, maar misschien is het een moeilijk proces. En in dit artikel, zien we een echte zaak en oplossing van problemen, problemen 1,6 K.,, een vriend van mij is een van de ontwikkeling van het personeel.Dus hij heeft niet veel ervaring met vanille javascript. Maar hij is begonnen in het kader van AngularJS zoals en ember geen fundamentele inzicht in de relatie tussen de DOM javascript.Als hij een eerste ontwikkeling van personeel, hij werd in een klein persoon die verantwoordelijk is voor het project: enkele bladzijden nauwelijks javascript deelnemen aan de verkiezingen.Hij was met een klein, maar zeer interessante vraag, uiteindelijk schrijf ik schuim. Js.,, in de veronderstelling dat er een pop - up.Een goede stijl, < di% GT%, element:,, < div = "POP" >...< /div >,, hier is onze boodschap van de code voor de weergave van de VAR - POP = documenten:,,. Queryselector ("aan de"); var zijn functie (MSG) {popup.style.display = = = = = = = "blok"; popup.innerhtml = mononatriumglutamaat;}.(door de'loading.Wacht even. ");,, we hebben een andere functie, hidemessage, te veranderen, dat niet verborgen, eigendom, pop.Deze methode kan in het algemeen, maar er zijn nog steeds problemen. , bijvoorbeeld, moeten we voor de uitvoering van de logica van extra, als de vragen één voor één naar binnen.We zeggen, hebben we nog twee knopen los van de inhoud, is het niet,,,,,, de inhoud var = "weet je het zeker?< BR /> "; + =" < href = "#" = "POP" > is op de < /> de inhoud van de; + = "< href =""=" POP - up - - geen "> geen < />; door de (inhoud); en, dus, hoe weten we dat ze de gebruikers op?We moeten nog een gebeurtenis van luisteraars elke band. , zoals:,, var addlisteners = functie (yescb, nocb {-). Queryselector (". -..."). AddEventListener (klik geluiden gehoord, yescb); de POP - up. Queryselector (". -"... Niet addEventListener). (klik geluiden gehoord, nocb);} worden (inhoud); addlisteners (functie) (console logboek ("knop");}, functie) (console. Log ("knop");});,, de code is op de eerste rij.Als we behoefte hebben aan een nieuwe knop of, erger nog, als wij een verschillende soorten knop?Dat is, als we doorgaan met het gebruik van , < een > verschillende namen, maar de elementen?We kunnen niet met dezelfde, addlisteners, functie, en het vervelende - elke verandering van het creëren van een nieuwe methode., het probleem is hier zichtbaar:,, moeten we meer publiek, keer op keer.In feite, elke keer als we in de POP - up: //europa.eu.int /comm /, zodat < di% GT%, veranderen, kunnen we aan de luisteraars, zet de bijwerking van de inhoud.Alleen in worden genoemd.We willen dat alle tijd en de synchronisatie van de twee processen, verhoging van het publiek.,, de code is afhankelijk van een harde, pop.We moeten het noemen, in plaats van queryselector, functie, queryselector documenten.Of we kunnen kiezen voor een verkeerde elementen.,, zodra we de boodschap van onze logische wijzigingen veranderen - en mogelijk, bel addEventListener.Dit is geen kwestie van een droog, moet er een betere manier om dit te doen.Nee, het is geen oplossing voor de in het kader van het antwoord, dat, laten we praten over de gebeurtenissen in de DOM, te weten de boom. Het geval met de gebeurtenissen van Internet is een essentieel onderdeel van de ontwikkeling.Ze verhogen de interactiviteit van onze programma 's, en als brug tussen de logica en de gebruikers.Elk dom elementen van de gebeurtenissen.Wat we moeten doen is de inschrijving van deze gebeurtenissen en de verwerking van de ontvangen de gebeurtenis.,, er bestaat een woord voor, bij de verspreiding van het evenement, en achter de gebeurtenissen te vangen, die beide in de DOM geval behandeling van twee methoden.Laten we met de volgende merken het verschil zien tussen hen.,, < div = "pakket" > < href = "#" > klik ik < /> < /div >,, zullen we ons concentreren op de gebeurtenissen, procedures Voor de behandeling van de elementen.Maar, omdat... Aan de andere kant, ze krijgt, op de gebeurtenissen.,, documentatie. Queryselector ("pakket"). AddEventListener (klik geluiden gehoord, (e) {console logboek ("klik". De verpakking);}); doc. Queryselector (a). AddEventListener (klik geluiden gehoord. Functie (e) {console logboek ("klik");}); en, als we op ons naar de volgende in de console produktie van banden: een klik, klik,,, dus, de verpakking, het zijn ontvangen, op de gebeurtenissen.Ten eerste, de link, dus, < div >,.Dit is bubbel effect.De elementen van haar ouders.Is er een manier om te voorkomen dat de bubbel.Elke procedure die tot een geval voorwerp, methode: het dossier binnen,,,, queryselector ("). AddEventListener (klik geluiden gehoord, (e) {zoals stoppropagation (); de console. Log (" klik ");});,,, energie, dat in geval van niet de ouders moeten worden gestuurd, en soms moeten we misschien omkering van de volgorde en de gebeurtenissen van de externe component, vangen.Om dit te bereiken, moeten we gebruik maken van een derde van een parameter, bel de addEventListener,.Als we door, als het ware een waarde, dan doen we de elektronische, te vangen.Bijvoorbeeld:,, het dossier. Queryselector ("pakket"). AddEventListener (klik geluiden gehoord, (e) {console logboek ("klik". De verpakking);}, waar); doc. Queryselector ("). AddEventListener (klik geluiden gehoord, (e) {console logboek (" klik ".);}, waar);,, dit is onze browser proces is gebeurd toen we met de pagina 's van de oplossingen, interactieve.,,, oké, dus waarom zouden we een passage die ze vangen we over praten en omdat... Is uit de antwoorden op onze vragen.We moeten de gebeurtenissen in verband met de vaststelling van de luisteraar maar niet, < di% GT%, rechtstreeks van de inhoud var.,, "weet je het zeker?< BR /> "; + =" < href = "#" = "POP" > is op de < /> de inhoud van de; + = "< href =""=" POP - up - - geen "> geen < />"; var addlisteners = functie) (POP. AddEventListener (klik geluiden gehoord, (e) {VAR link = e.target;});} worden (inhoud); addlisteners ();,, door deze methode, die aan het begin van ons niet in de problemen.Slechts één geval van luisteraars, zullen we het nog een keer.Het maakt niet uit hoe we het in het raam van de gebeurtenis, gevangen in hun ouders.,, we hoeven niet de aanvullende inhoud.Met andere woorden, het kan ons niet schelen, was die belde.Zolang de POP - up, variabelen, we halen het geval is in leven, omdat we de telefoon.,, addlisteners, ooit, we gebruiken, POP - up, variabele was.We hoeven niet of het methode.,, we hebben een code om flexibel te zijn, omdat we niet de keuze: //europa.eu.int /comm /was.We zijn in het anker, , e.target, punt druk element.,,, de code is een dan beginnen we.Maar nog steeds geen functie op dezelfde wijze.Zoals we zeiden, e.target, wijst op een klik, < > de etikettering.Dus, we gebruiken een onderscheid te maken tussen de,,,,,,, var addlisteners knop. = functie (call - back - up) {. AddEventListener (klik geluiden gehoord, (e) {VAR link = e.target; var de buttontype = verbonden voorwerpen ("'); als (call - back - [van de buttontype]) - de buttontype] {[(e);}});}.Addlisteners ({"POP - up - - is het": de functie) (console logboek ("");}, "POP - geen": logboek (functie) (console "nee");}});,, we hebben de waarde van de eigenschap, klasse, en gebruik het als een prioriteit.De verschillende klassen in een andere functie.Echter, het is geen goed idee, het gebruik, de soort, de eigenschap.Het is voorbehouden aan de elementen van de waarde van de visuele stijl, het kan altijd veranderen.Javascript ontwikkelaars, we moeten gebruik maken van de gegevens, de eigenschappen, de inhoud, de var. = "weet je het zeker?< BR /> "; + =" < href = "#" gegevens Action = "ja" = "POP" > is op de < /> de inhoud van de; + = "< href =""actie" nee "= gegevens =" POP - geen "> geen < />";,, we hebben een code een beetje beter?We kunnen met de aanhalingstekens te schrappen, addlisteners. Functie:,, addlisteners ({is: de functie) (console logboek ("");}, geen functie) (console logboek ("nee");}}); de resultaten kunnen zien in het,,,,,, ik bubble.js JSBin van toepassing. De oplossing, in een aantal van de genoemde projecten, zodat het pakket.Dit is de zogenaamde bubble.js en het in de github beschikbaar is.Dit is 1,6 k documenten, is het niet meer dan wij doen., laten we veranderen onze POP - menu 's, bijvoorbeeld het gebruik van js, schuim,.Ten eerste, we moeten veranderen, is het gebruik van etikettering, zonder de inhoud van de risico 's: = "weet je het zeker?< BR /> "; + =" < href = "gegevens #" actie "ja" = = = = = = = - - - "voor" > ja < /> de inhoud van de; + = "< href =""gegevens schuim Action =" niet "=" POP - up - - geen "> geen < />"; in plaats van de gegevens, de actie, moeten wij gebruik maken van de gegevens, en de rol van de bubbel,.,, zodra we er zijn, bubble.min.js, op onze website, we hebben een wereldwijde schuim en functies beschikbaar.Het aanvaarden van een dom elementen en de terugkeer van de API - bibliotheek.,, is een verhoging van het publiek:,, schuim ("POP - up"), ("ja", functie) (console logboek (""); (}), "nee", functie) (console logboek ("nee");}, andere); een grammatica:,, Het schuim ("POP - up"), ({is: de functie) (console logboek ("");}, geen functie) (console logboek ("nee");}});,, bij verstek, , bubble.js, luister, op de gebeurtenissen, maar er is een optie kan veranderen.Laten we nog een input - gebied en luisteren, keyup gebeurtenissen:,,, < input vormen voor de tekst data schuim Action = "keyup: input" /> de behandeling van die gebeurtenissen, en javascript nog steeds.Dus, in dit geval, we kunnen aantonen dat de tekst:,, schuim (". -" ({)...(e) de functie van de input: {console logboek (nieuwe waarde: "+ e.target. Waarde);}});, en soms moeten we vangen van niet één, maar veel incidenten zijn van hetzelfde element.De gegevens van actie, schuim, die meer waarde door een komma 's:,, < input vormen voor de tekst data schuim Action = "keyup: input, Fuzzy: inputblurred" />,, hier hebben de laatste varianten (JSBin.,,, in dit verslag volledig afhankelijk zijn van de gebeurtenissen. De bubbel oplossingen bieden.In sommige gevallen kan e.target, geen elementen die we nodig hebben. , zoals:,, < div = "pakket" > < href = "#" > verzoekt de < span > selectie < /ijk GT; ik!< /> < /div >,, als we de muis in de keuze van de toewijzing van " klikken, elementen van de gebeurtenissen niet, < een >, etiketten maar span, dollar, samengevat, die, toegegeven, en de toepassing van de mededeling van de Commissie is dom van ons programma voor de ontwikkeling van een belangrijk onderdeel van, maar het is een gangbare praktijk in het kader van de communicatie, maar om ons. , bij het publiek, we willen niet nog een keer.We houden niet van vreemde gebeurtenissen beter dubbele fout.De waarheid is, als we weten hoe de browser, we kunnen deze problemen oplossen, maar het resultaat is van een bubble.js lezen, een paar uur en de code van een uur. Dat is onze 1,6 k op te lossen, één van de meest voorkomende problemen.
Bubble.js: een gemeenschappelijke oplossing: een
Next Page:Ga je eigen kader