→ jQuery-voorbeelden voor beginners
jQuery is een javascript-bibliotheek die bestaat uit cross-browser-functies - wrappers voor het manipuleren van DOM-elementen (Document Object Model). Het belangrijkste principe is de automatische toepassing van het vereiste mechanisme, afhankelijk van de browser. Het verkrijgen van een html-element van een document op basis van ID gebeurt bijvoorbeeld anders in verschillende browsers. Vóór jQuery gebruikte ik deze functie:
Functie getObj(objID)( if (document.getElementById) (retourneer document.getElementById(objID);) else if (document.all) (retourneer document.all;) else if (document.layers) (retourneer document.layers;) )
Om dezelfde actie in jQuery uit te voeren, doet u dit:
$("#objID") of jQuery("#objID")
Het aanroepen van de functie $() is gelijk aan jQuery() , aangezien de eerste een alias is voor de tweede. Als u geen andere bibliotheken zoals jQuery gebruikt, kunt u veilig toegang krijgen tot de naamruimte via $(). Anders is het beter om de directe naam van het object te gebruiken: jQuery. Verder gaan we ervan uit dat er geen andere bibliotheken zijn.
Aan de slag met jQueryDus laten we aan de slag gaan. Het eerste dat u hoeft te doen, is de nieuwste versie van de jquery-bibliotheek downloaden van de officiële projectwebsite http://jquery.com/ of jquery hier downloaden. Er zijn twee versies in het archief en op de officiële website: gecomprimeerd en ontwikkeld. Op de site is het beter om de gecomprimeerde te gebruiken, en als je wilt experimenteren, gebruik dan de tweede. Allereerst nemen we de jQuery-bibliotheek op in de hoofdtekst van de pagina:
Hierna wordt de javascript-naamruimte zo gedefinieerd dat de aanroep van de functie $() wordt bezet door jQuery en u elk element van het HTML-document als object kunt krijgen met behulp van de uitdrukking $("#objID") . Waar objID de object-ID is.
jQuery en CSSLaten we als eerste voorbeeld eens kijken hoe jQuery en CSS werken. Er zijn twee manieren om CSS te manipuleren met jQuery: het wijzigen van één attribuut of meerdere tegelijk. Ze worden uitgevoerd via de functie css(). In theorie ziet het er ongeveer zo uit:
$("#objID").css("display","block") $("#objID").css(( display:"block, margin:"10px", color:"#ffffff" ))
Voorbeeld van het wijzigen van één CSS-attribuutHet voorbeeld van het veranderen van één attribuut was een succes!
Broncode:
Het voorbeeld van het veranderen van één attribuut was een succes!
Voorbeeld van het wijzigen van meerdere CSS-kenmerkenVoorbeeld van het wijzigen van meerdere attributen!
Broncode:
function demo_css())( $("#span2").css(( color:"#ffffff", opvulling:"5px", achtergrond:"#980000" )); ) Voorbeeld van het wijzigen van meerdere attributen!
Tekst en html wijzigenOm tekst of html-code te wijzigen, zijn er functies text() en html() .
$("#objID").text("True la la") $("#objID").html("
Echt la la
Bovendien, als u HTML-code probeert in te voegen met de functie text(), ontvangt u deze in de oorspronkelijke vorm. De functie text() ontsnapt aan alles.
Tekst() voorbeeldBroncode:
function set_text())( $("#span3").text("Bedankt!"); )
Voorbeeld van het gebruik van html()Broncode:
function set_html())( $("#span4").html("Bedankt! Dit is veel beter."); )
Kenmerken beheren met jQueryDe functie attr() manipuleert de attributen van elk element. Met zijn hulp kunt u titel, href, waarde, src enzovoort toevoegen of wijzigen.
Attr() voorbeeldBroncode:
function plus_ten())( var cur_value = $("#text").attr("value"); cur_value = parseInt(cur_value) + 10; $("#text").attr("value",cur_value); )
Gebeurtenishandlers in jQueryDe volledige lijst is beschikbaar op http://api.jquery.com/category/events/. Ik zal slechts een paar voorbeelden geven. De meest voorkomende onclick-gebeurtenishandler. In jQuery kun je het onderscheppen via de click()-functie.
Klik() VoorbeeldBroncode:
$("#butt").click(function())( alert("Heb je besloten om het eens te proberen?"); ));
Keyup() voorbeeldVoer iets in:
Je hebt ingevoerd:
Broncode:
Voer iets in:
Je hebt ingevoerd: $("#text2").keyup(function())( if ($("#text2").val())( $("#text2_target").css((achtergrond:"#980000" ) ) else ( $("#text2_target").css((achtergrond:"#ffffff")); ) $("#text2_target").text($("#text2").val()); );
Klik op mij!
Broncode:
div#log( achtergrond:#1C93A5; breedte:300px; hoogte:100px; vulling:10px; kleur:#fff; ) Klik op mij!
$(document).ready(function() ( $("#log").bind("klik", function(e) ( $("#coord").html("X-coördinaat: "+ e.pageX + " Y-coördinaat: " + e.pageY + "");
JQuery is een geweldige bibliotheek. Het hielp om alle valkuilen van IE6 perfect te vermijden. Vroeger was compatibiliteit tussen browsers een groot probleem voor ontwikkelaars. JQuery kon goed omgaan met alle verschillen in het weergeven van lay-outs in verschillende browsers.
Tegenwoordig hebben browsers uitstekende uniforme oplossingen. We kunnen comfortabel gebruik maken van alle privileges van ES5, en we hebben ook de HTML5 API tot onze beschikking, wat het veel gemakkelijker maakt om DOM-elementen te verwerken. Ontwikkelaars staan op de rand van de vergetelheid en stappen voor sommige projecten af van jQuery. Vooral in het geval van microservices en niet-complexe programma's.
Begrijp me niet verkeerd: JQuery is nog steeds een prachtige bibliotheek, en je zult hem natuurlijk 70% van de tijd moeten gebruiken. Hoewel je voor kleine pagina's met beperkte JS VanillaJS of een ander raamwerk kunt gebruiken. Deze zijn geschikt voor mobiele toepassingen.
Welnu, hier zijn 10 voorbeelden van werkende code die u zonder jQuery kunt doen.
Het bijhouden van de gebeurtenis dat de pagina is geladenHet eerste dat u doet als u jQuery gebruikt, is de code in een $(document).ready() -methode plaatsen om te weten wanneer de DOM gereed is voor manipulatie. Zonder JQuery kunnen we de DOMContentLoaded-gebeurtenis gebruiken. Hier is een codevoorbeeld:
// Luister naar de DOMContentLoaded-gebeurtenis voor het hele document, met een anonieme functie // U kunt uw code in de armen van deze functie plaatsen // en deze wordt uitgevoerd wanneer de pagina wordt geladen. document.addEventListener("DOMContentLoaded", function () ( // onze Hawaiiaanse begroeting wordt getoond in de consoleconsole.log("Aloha"); ));
Elementkiezers zonder JQueryOp een dag zullen we elementen moeten selecteren met behulp van id, class of tags, en jQuery is een van de beste. De selectors hiervan zijn volledig identiek aan de CSS-syntaxis. Tegenwoordig hebben browsers twee belangrijke API's geïntroduceerd: querySelector en querySelectorAll.
// U kunt document.querySelector gebruiken om het eerste element te verkrijgen dat aan de criteria voldoet // heeft slechts één argument nodig: CSS-selectors. var lochNess = document.querySelector(".monsters"); console.log("Het komt uit Schotland - " + lochNess.textContent); // we kunnen de verzameling ook ophalen met document.querySelectorAll. // retourneert een lijst met dom-elementen die overeenkomen met het criterium var eng = document.querySelectorAll( ".monsters" ); console.log("Verstoppers: "); (var i = 0; i< scary.length; i++) { console.log(scary[i].innerHTML); }
- Nessy
- Grote voet
- De chupacabra
Luisteren naar gebeurtenissen is een fundamenteel onderdeel van het bouwen van webapplicaties. Historisch gezien zijn er twee grote kampen geweest: IE en de rest. Maar vandaag gebruiken we alleen addEventListener
Var btn = document.querySelectorAll("knop"), lijst = document.querySelector("ul"); // Roep addEventListener op voor de gewenste gebeurtenis. // begint de klikgebeurtenis op een element te volgen. btn.addEventListener("click", function () ( // Wanneer op een knop wordt geklikt, willen we een gebeurtenisschaal aan onze lijst activeren. // Om dit te doen, moeten we een gebeurtenis aan onze lijst toevoegen // zodat wanneer de muis over een element beweegt, wordt de functie list .addEventListener("mouseover", enlarge )); // Gebruik removeEventListener om de zoomgebeurtenis te annuleren. btn.addEventListener("klik", function () ( // Het verwijderen van gebeurtenissen werkt niet met naamloze functies, gebruik alleen benoemde functies list.removeEventListener("mouseover", vergroten); )); // Laten we een functie maken die schaalbaar is. var enlarge = function () ( // Voeg een klasse toe voor de elementen list.classList.add("zoomed"); // wanneer de cursor de lijst verlaat, verwijdert u de klasse om terug te keren naar de normale schaal list.addEventListener("mouseout ", function ( ) ( list.classList.remove("ingezoomd") )); // Nu willen we namen markeren wanneer erop wordt geklikt. // Wanneer op het element wordt geklikt, moet het groen worden // Dankzij gebeurtenisdelegatie kunnen we eenvoudigweg een handler aan het bovenliggende element toevoegen // Bij deze methode maken we geen gebeurtenislisteners voor elk element
Zoom inschakelen Zoom uitschakelen
Klik op een naam om deze te markeren
- Chewbacca
- Han Solo
- Lucas
- Boba fett
Groen ( kleur: groen; ) .zoomed ( cursor: aanwijzer; lettergrootte: 23px; )
addEventListener gebruikte een derde argument, maar dit is optioneel. Zoals u kunt zien, lijkt de code behoorlijk op jQuery.
Klassen toevoegen en verwijderen zonder jQuery in pure JSHet beheren van elementklassen zonder jQuery was vroeger een groot probleem. Maar niet meer. Dankzij de classList-eigenschap. En als u attributen moet wijzigen, kunt u setAttribute gebruiken.
Var btn = document.querySelectorAll("knop"), div = document.querySelector("#mijnDiv"); btn.addEventListener("click", function () ( // een gemakkelijke manier om elementattributen console.log(div.id); )); // Element.classList slaat alle elementklassen uit de DOMTokenList op. var klassen = div.classList; btn.addEventListener("klik", function () ( console.log(klassen); )); btn.addEventListener("klik", function () ( // Klassen toevoegen en verwijderen klassen.add("rood"); )); btn.addEventListener("klik", function () ( // Schakel klasse klassen.toggle("verborgen"); ));
Weergave-id Weergaveklassen Kleur rood Schakel zichtbaarheid in of uit
Vierkant ( breedte: 100px; hoogte: 100px; marge-onder: 20px; rand: 1px effen grijs; randradius: 5px; ) .hidden ( zichtbaarheid: verborgen; ) .red ( achtergrondkleur: rood; )
De HTML-inhoud van een element ophalen en wijzigenjQuery heeft gemaksmethoden text() en html(). In plaats daarvan kunt u de eigenschappen textContent en innerHTML gebruiken, die al lang vóór jQuery bestonden.
Var myText = document.querySelector("#myParagraph"), btn = document.querySelectorAll("knop"); // Op deze manier kunt u eenvoudig de volledige tekst van de elementenboom achterhalen var myContent = myText.textContent; console.log("textContent: " + mijnContent); // Gebruik textContent om de tekst van het element te vervangen // verwijdert de oude en vervangt deze door nieuwe tekst btn.addEventListener("click", function () ( myText.textContent = " Koala's zijn de beste dieren "; )); // Als we de HTML van het element nodig hebben, gebruik dan innerHTML. var mijnHtml = mijnText.innerHTML; console.log("innerHTML: " + mijnHtml); // Om html te vervangen, geeft u gewoon een nieuwe btn.addEventListener("click", function () ( myText.innerHTML = "Pinguïns zijn de beste dieren"; ));
Wat zijn de beste dieren?
Koala'sPinguïns Nieuwe elementen invoegen en bestaande elementen verwijderen
Ondanks het feit dat JQuery het werk met het toevoegen en verwijderen van elementen enorm vereenvoudigt, heeft niemand gezegd dat dit niet in pure JavaScript-code kan worden gedaan. Hier ziet u een voorbeeld van hoe u een element op een pagina kunt toevoegen, verwijderen of vervangen.
Var lunch = document.querySelector("#lunch"); // Laten we zeggen dat we een menu hebben voor onze lunch // Laten we er iets aan toevoegen var addFries = function () ( // Eerst maken we een element en vullen het met inhoud var frietjes = document.createElement("div"); frietjes .innerHTML = "
if (augurken) ( pickles.parentNode.removeChild(augurken); ) ); // Lekker! var btn = document.querySelectorAll("knop"); btn.addEventListener("klik", addFries); btn.addEventListener("klik", addCheese); btn.addEventListener("klik", verwijderPickles);
- Voeg friet toe aan de lunch Voeg kaas toe aan de sandwich Verwijder de augurken Mijn lunch
- Mijn broodje
- Brood
- Augurken
- Rundvlees
- Mijn broodje
Mayo
Vergrootglaseffect
Aviaslider
Brede navigatie
Diavoorstelling met grote afbeeldingen
Cirkelgebaseerde navigatie
Vervolgkeuzelijst inlogpaneel
Hiermee kunt u pagina-elementen rond een cirkel en in verschillende ruimtevlakken lanceren.
Met de Flip-plug-in kunt u elementen omdraaien alsof het kaarten zijn.
Informele afbeeldingengalerij. Het inhoudsvoorbeeld bestaat uit een groep verspreide foto's gemaakt met een polaroidcamera.
Een eenvoudige maar zeer mooie afbeeldingsschuifregelaar.
Diavoorstelling met beelden die door de ruimte bewegen.
Een zeer interessante manier om een interactieve productcatalogus te maken.
Fotosessie
Hiermee kunt u foto's maken van afzonderlijke delen van een afbeelding op een pagina. Klik op het gewenste deel van de afbeelding en bekijk het resultaat op het scherm.
Met de Quicksand-plug-in kunt u een reeks elementen sorteren en filteren met behulp van effecten van zeer hoge kwaliteit.
Deze plug-in zal zeer nuttig zijn voor het maken van gedetailleerde beschrijvingen van complexe objecten en interactieve rondleidingen wanneer dat nodig is, terwijl hij zo min mogelijk ruimte in beslag neemt om een grote hoeveelheid informatie te bieden.
Met de plug-in Schuifdozen kunt u een ongebruikelijke dynamische galerij met afbeeldingen maken met bijschriften ervoor.
Een afbeeldingengalerij waarvan de elementen vrolijk verschijnen als je erover beweegt.
In dit artikel bekijken we de AJAX-snelkoppelingsmethoden van jQuery: laden, ophalen, getJSON, getScript en post. Deze methoden maken het zeer eenvoudig om de noodzakelijke AJAX-verzoeken uit te voeren en vereisen, in tegenstelling tot de ajax-functie, minder regels code om te schrijven.
jQuery - laadmethodeDe laadmethode is ontworpen om gegevens van de server op een opgegeven URL op te halen en in een of meer geselecteerde elementen te plaatsen.
De laadmethode heeft de volgende syntaxis:
Load(url [,data] [,complete]) // parameters tussen vierkante haken zijn optioneel //url - een string met de URL waarnaar het verzoek moet worden verzonden //data (optionele parameter) - gegevens waarnaar moet worden verzonden de server (in string- of objectformaat) //complete – aanvullende acties die moeten worden uitgevoerd nadat het verzoek is voltooid (gespecificeerd met de functie Function(responseText, textStatus, xhr)) // responseText - serverrespons // textStatus - responsstatus // xhr - XMLHTTPRequest-object
In de meeste gevallen gebruikt de laadmethode GET om een verzoek te verzenden. Maar het kan ook de POST-methode gebruiken. Dit gebeurt alleen als de gegevens die naar de server moeten worden verzonden, niet in stringformaat zijn opgegeven, maar via een object.
Voorbeelden van het gebruik van de laadmethode1. Voeg de inhoud van het bestand asidenav.tpl in het blok in met id="asidenav" nadat de DOM van de pagina is geladen:
... // na het laden van de DOM van de pagina $(function() ( // plaats de inhoud van het asidenav.tpl-bestand in het element (#asidenav) // als het bestand niet in dezelfde map staat als de HTML document, dan moet u bovendien het pad naar hem opgeven $("#asidenav").load("asidenav.tpl");
2. Laad een deel van het demo.html-bestand in het element wanneer u op de knop daarin klikt:
Haal de inhoud van het bestand demo.html op ... $("#ajaxclick").click(function())( // laad een deel van het bestand demo.html (#content1) in het element id="content1" $ (deze).parent() .load("demo.html #content1" ));
Inhoud van het demo.html-bestand:
Bestand demo.html ... ...
3. Laad het antwoord content.php in het element met id="result" . Dit antwoord zal afhangen van de waarde van het data-content attribuut dat de knop heeft die het AJAX-verzoek naar de server heeft verzonden.
Inhoud laden 1 Inhoud laden 2 Inhoud laden 3 ... // wanneer u op een knop met de klasse klikt load-ajax-click $(".load-ajax-content").click(function())( // definieer de waarde van het data-attribuut -content var dataContent = $(this).attr("data-content"); vraag gegevens op uit het bestand met behulp van de data-content attribuutwaarde en voer deze uit naar het id="result" element if ( dataContent) ( $ ("#result").load("content.php","content="+dataContent) ));