Datakurser
Aktuell vecka: 48

Tillbaka till toppen

JAVASCRIPT jQuery

Vad är jQuery?

JQuery är ett bibliotek fullt av färdiga funktioner och effekter som är skapade med javascript. JQuery är ett komplement till javascript. JQuery snabbar upp utvecklingen av webbsidor med javascript. Biblioteket innehåller massor av tillägg som kan utnyttjas vid programmerandet med javascript. Allt som finns i jQuery är webbläsarkompatibelt. Det är relativt enkelt att komma igång och använda hjälpmedlen i jQuery. jQuery, skapades av John Resig 2006.
Vi ska gå igenom några grundläggande detaljer och sen ska det vara möjligt att använda biblioteket.
För att komma åt alla funktioner i jQuery så måste vi länka till biblioteket.
Gå till www.jquery.com . Under "download" så finns flera versioner, komprimerad, okomprimerad, med och utan ajax/effekter.
Vi kör den kompletta och komprimerade jquery-3.1.1.min.js.
Google har också filerna, se nedan.

<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

jQuery filen vi länkar in är liten, strax under 100kB. Vi använder den ihoppackade filen, .min. , som är mycket mindre är den opackade.

Grunder

Grund

<div id="a">Lorem ipsum dolor sit ... .</div>

<button id="b">Dölj/visa texten</button>
<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
  
      $("#b").on('click', function () {
         $("#a").toggle("slow");
      });

</script>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Vi får tag på ett eller flera element på sidan med $(<selektor>), i vårt fall id:et a, $("#a"). Vi hade kunnat ha en klass $(".myClass"), eller en tagg $("li"). Vi får ett element eller en lista av element.
Med punktnotation kommer vi åt jquery-funktioner.
$("#a") refererar till något på webbsidan.

Det kan vara ett tagg-namn (t ex body) eller en klass (t ex .redBackground) eller ett id (som här #a). Själva namnet kan skrivas inom citattecken, "#a", eller apostrofer '#a'.

Grundsyntax

<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>

      $('thingToClick').on('event', function() {
         $('thingToAffect').effect();
      });

</script>
När vi kopplar en händelse till en funktion,
$('thingToClick').on('event', function() {...}); ,
använder vi on och anger typ av händelse som första argument och funktionen som andra argument.
I jQuery finns inbyggda effekter som vi kan haka på något element genom punktnotation.
$('thingToAffect').effect();

Klick-händelse och exempel på Toggle, Fade, Slide

<div id="xc">Lorem ipsum ... </div>
<button id="c">Toggle</button><button id="d">Fade</button><button id="e">Slide</button>
<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>

      $("#c").on('click', function () {
         $('#xc').toggle("slow");
      });
      $("#d").on('click', function () {
         $('#xc').fadeOut("slow").fadeIn(4000, "linear").fadeOut("slow");
      });
      $("#e").on('click', function () {
         $('#xc').slideUp(1000).slideDown(1000).slideUp(1000).delay(2000).slideDown(4000);
      });

</script>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Som vi ser så kan man i jQuery bygga på med effekter genom att göra en punkt och fortsätta.
Andra effekter för att dölja och visa delar av sida är hide() och show().

Mouseover/Mouseout och Lägg till/Ta bort en css-klass


<div class="hoverDiv">Testa att köra över texten med musen!</div> <br>
<div class="hoverDiv">En annan divruta att köra musen över!</div>
<script>

      $('.hoverDiv').on('mouseover', function() {
         $(this).addClass('bg-orange');
      });
      $('.hoverDiv').on('mouseout', function(){
         $(this).removeClass('bg-orange');
      });

</script>

Testa att köra över texten med musen!

En annan divruta att köra musen över!

Här använder vi en klass för att komma åt fler element på sidan. Det reserverade ordet this i jquery syftar på det aktuella elementet som orsakat händelsen.

3e parts skapare

PrettyPhoto

PrettyPhotoImageViewer

Källor

http://www.jquery.com

http://www.codecademy.com

http://www.jqueryui.com

http://www.w3schools.com/jquery

 

Länkar

w3schools.com

W3C:s Specifikationer

Web Style Guide

Skolans webbhotell

Gå till följande sida: labb.vgy.se

Logga in med dina kontouppgifter

Lösningsförslag
(visas ej på prov)

???