jQuery - Polsko-Japońska Akademia Technik Komputerowych

Transkrypt

jQuery - Polsko-Japońska Akademia Technik Komputerowych
Technologie Internetu. JQuery
Aleksander Denisiuk ([email protected])
Polsko-Japońska Akademia Technik Komputerowych
Wydział Informatyki w Gdańsku
ul. Brzegi 55, 80-045 Gdańsk
28 maja 2016
1 / 23
JQuery
Wprowadzenie
Dostęp
Najnowsza wersja tego dokumentu dostępna jest pod adresem
http://users.pja.edu.pl/~denisjuk/
Modyfikacjia
Łańcuch
2 / 23
Wprowadzenie
JQuery
Instalacja
Obiekt JQuery
Dostęp
Modyfikacjia
Łańcuch
Wprowadzenie
3 / 23
JQuery
Wprowadzenie
JQuery
Instalacja
Obiekt JQuery
Dostęp
Modyfikacjia
Łańcuch
✔
Legalna (MIT) biblioteka w JavaScript do zastosowych
internetowych
✘
✘
✘
✘
✘
✘
✘
✘
Manipulacja DOM
Obsługa zdarzeń
AJAX
Animacja i inne efekty
Dużo wtyczek
Uwzględnia niestandadrowe przeglądarki (wersja 2.x
wymaga IE9+)
Ułatwia(?) napisanie kodu
Jest bardzo popularna
4 / 23
Instalacja
Wprowadzenie
JQuery
Instalacja
Obiekt JQuery
✔
✔
Pobrać z http://jquery.com/download/
Wykorzystać CDN
<script
src="http://code.jquery.com/jquery-2.1.4.min.js">
</script>
Dostęp
Modyfikacjia
Łańcuch
✘
✔
są inne CDN
Bower:
bower install jquery
5 / 23
Obiekt JQuery
Wprowadzenie
JQuery
Instalacja
Obiekt JQuery
jQuery
albo
Dostęp
Modyfikacjia
$
Łańcuch
6 / 23
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
Łańcuch
Dostęp
7 / 23
Dostęp do elementów
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
Łańcuch
✔
Po selectorze css (plus kilka rozszerzeń)
$( "p" )
$( "p.intro img" )
$( "ul li:first-child" )
$( "#test")
jQuery( ’table.orders tr:odd’ )
$( "form input:radio" )
8 / 23
Wynik zapytania
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
Łańcuch
✔
✔
Zestaw obiektów jQuery, podobny do tablicy
Ma length, operator [] i wiele metod do manipulacji na
elementach
✘
✘
$(’p’)[0] jest elementem DOM
$(’p’).eq(0) jest obiektem jQuery
9 / 23
Dostęp do elementów rodzicielskich
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
✔
✔
✔
parent() element rodzicielski
parents() wszysctkie elementy rodzicielskie do html
parentsUntil(elem) wszystkie elementy rodzicielskie do
elem
Łańcuch
$("span").parent();
$("span").parents();
$("span").parentsUntil("div");
10 / 23
Dostęp do elementów dziecięcych
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
Łańcuch
✔
✔
children() elementy dziecięce (jeden poziom)
find() wszysctkie elementy dziecięce, pasujące do selectrora
$("ul").children();
$("ul").children("li.class1");
$("div").find("span");
$("div").find("*");
11 / 23
Nawigacja w poziomie
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
Łańcuch
siblings()
next()
nextAll()
nextUntil()
prev()
prevAll()
prevUntil()
12 / 23
Filtracja
Wprowadzenie
Dostęp
Dostęp do
elementów
Nawigacja
Modyfikacjia
first()
last()
filter()
not()
Łańcuch
13 / 23
Wprowadzenie
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
Łańcuch
Modyfikacjia
14 / 23
Dostęp/Zmiana zawartości
Wprowadzenie
✔
text() — zawartość tekstowa elementu
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
✘
✔
html() — zawartość html elementu
✘
Łańcuch
✔
val(new) — ustaw wartość pola formulaza
attr(at) — wartość atrybutu
✘
✔
html(new) — ustaw zawartość html elementu
val() — wartość pola formulaza
✘
✔
text(new) — ustaw zawartość tekstową elementu
val(at,new) — ustaw wartość atrybutu
prop(at) — wartość właściwości (selectedIndex, checked,
defaultSelected, etc.)
✘
prop(at,new) — ustaw wartość właściwości
15 / 23
Callback
Wprowadzenie
✔
Wymienione metody mogą mieć jako (drugi) argument funkcję
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
Łańcuch
✘
funkcja ta ma dwa argumenty: numer elementu na liście
oraz starą wartość
$("#test2").html(function(i, origText){
return "Old html: " + origText +
" New html: Hello <em>world!</em>
(index: " + i + ")";
16 / 23
Dodawanie treści
Wprowadzenie
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
✔
✔
✔
✔
prepend() dodaje treść na początku elementu
append() dodaje treść na końcu elementu
before() dodaje treść przed elementem
after() dodaje treść po elemencie
$("p").append("New");
$("p").before("<p>New</p>", "<p>Text</p>");
Łańcuch
✔
Utworzenie nowego elementu:
$(’<tag></tag>’)
17 / 23
Usuwanie treści
Wprowadzenie
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
✔
✔
empty() usuwa wszystkie elementy dziecięce
remove() usuwa wszystkie elementy (razem z dziecięcymi)
✘
remove(filter) usuwa wszystkie elementy pasujące do
filtru
Łańcuch
$("ul").empty();
$("p").remove(".to_delete");
18 / 23
Zmiana clasy
Wprowadzenie
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
✔
✔
✔
✔
addClass()
removeClass()
toggleClass()
hasClass()
Łańcuch
$("h1, h2, p").addClass("blue");
$("div").removeClass("important");
$("span.toc").toggleClass("visible");
19 / 23
Dostęp/zmiana właściwości css
Wprowadzenie
✔
css(pror) — właściwość css (jak getComputedStyle)
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
✘
css(prop, new) — ustaw właściwość css
✘
new może być funkcją
Łańcuch
20 / 23
Wymiary
Wprowadzenie
Dostęp
Modyfikacjia
Modyfikacja
zawartości
Modyfikacja stylów
Łańcuch
21 / 23
Wprowadzenie
Dostęp
Modyfikacjia
Łańcuch
Zasada łańcuchowa
Łańcuch
22 / 23
Zasada łańcuchowa
Wprowadzenie
✔
Każda metoda zwraca nowy element
Dostęp
Modyfikacjia
Łańcuch
Zasada łańcuchowa
✘
Możliwe (a nawet zalecone) jest stosowanie łańcuchów
$(’<li></li>’).text(value).addClass(’clickable’)
.click(getShowGenre(value));
23 / 23