Javascript Dom PDF
Javascript Dom PDF
Objektit të Dokumentit)
●
● document
●
// change the background color to red
document.body.style.background = "red";
// change it back after 1 second
setTimeout(() => document.body.style.background = "", 1000);
● document.body.style
Pema e DOM.
●
●
●
● document.body <body>
●
document.body.style.background = 'red'; // make the background red
setTimeout(() => document.body.style.background = '', 3000); // return back
● style.background document.body
○ innerHTML
○ offsetWidth
○ etj...
Shembull Pema DOM
●
<!DOCTYPE HTML>
<html>
<head>
<title>About elk</title>
</head>
<body>
The truth about elk.
</body>
</html>
Bredhja në pemën e DOM.
●
●
document
3 nyjet kryesore te pemes.
● document
● <html> = document.documentElement
document document.documentElement <html>
● <body> = document.body
<body> document.body
● <head> = document.head
<head>
Fëmijët: nyjet e fëmijëve, fëmija i parë, fëmija i
fundit (childNodes, firstChild, lastChild).
●
●
<head> <body> <html>
●
● <body> <div> <ul>
<html>
<body>
<div>Begin</div>
<ul>
<li>
<b>Information</b>
</li>
</ul>
</body>
</html>
Shembull (childNodes).
● document.body
<html>
<body>
<div>Begin</div>
<ul>
<li>Information</li>
</ul>
<div>End</div>
<script>
for (let i = 0; i < document.body.childNodes.length; i++) {
alert( document.body.childNodes[i] ); // Text, DIV, Text, UL, ..., SCRIPT
}
</script>
</body>
</html>
Shembull (firstChild, lastChild).
● firstChild lastChild
●
● elem.hasChildNodes()
Koleksionet e DOM
●
for..of
for (let node of document.body.childNodes) {
alert(node); // shows all nodes from the collection
}
Array.from
Array.from(document.body.childNodes)
Permbledhje Nyjet e DOM
●
●
●
Kerkimi me (getElement*, querySelector*).
●
document.getElementById:
document.getElementById(id)
●
<div id="elem">
<div id="elem-content">Element</div>
</div>
<script>
// get the element
let elem = document.getElementById('elem');
// make its background red
elem.style.background = 'red';
</script>
querySelectorAll.
● elem.querySelectorAll(css)
elem
● <li>
<ul>
<li>The</li>
<li>test</li>
</ul>
<ul>
<li>has</li>
<li>passed</li>
</ul>
<script>
let elements = document.querySelectorAll('ul > li:last-child');
for (let elem of elements) {
alert(elem.innerHTML); // "test", "passed"
}
</script>
querySelector (metoda matches(css)).
● elem.querySelector(css)
●
● elem.matches(css)
true false
for (let elem of document.body.children) {
if (elem.matches('a[href$="zip"]')) {
alert("The archive reference: " + elem.href );
}
}
querySelector (metoda closest(css)).
● elem.closest(css) elem
<h1>Contents</h1>
<div class="contents">
<ul class="book">
<li class="chapter">Chapter 1</li>
<li class="chapter">Chapter 1</li>
</ul>
</div>
<script>
let chapter = document.querySelector('.chapter'); // LI
alert(chapter.closest('.book')); // UL
alert(chapter.closest('.contents')); // DIV
alert(chapter.closest('h1')); // null (because h1 is not an ancestor)
</script>
getElementsBy*.
●
● elem.getElementsByTagName(tag)
● elem.getElementsByClassName(className)
<form name="my-form">
<div class="article">Article</div>
<div class="long article">Long article</div>
</form>
<script>
// find by name attribute
let form = document.getElementsByName('my-form')[0];
// find by class inside the form
let articles = form.getElementsByClassName('article');
alert(articles.length); // 2, found two elements with class "article"
</script>
Permbledhje
●
Metoda Kerkuar sipas... Mund te therritet ne nje Live? (koleksione
element? reale)
querySelector CSS-selector ✔ -
querySelectorAll CSS-selector ✔ -
getElementById id - -
getElementsByName emer (elementi) - ✔
getElementsByTagName tag ose '*' ✔ ✔
getElementsByClassName class ✔ ✔
●
○ className
○ classList
●
○ style camelCased”
style important
MDN.
○ style.cssText style
●
○ style
Evente ne Javascript
●
●
●
○ click – kur mausi klikon mbi nje element (ne paisjet touchscreen gjenerohet me prekje).
○ contextmenu – kur klikoni me te djathten e mausit mbi element.
○ mouseover / mouseout – kur mausi kalon siper / largohet nga nje element.
○ mousedown / mouseup – kur mausi eshte i klikuar / leshuar mbi nje element.
○ mousemove – kur leviz mausi.
● Eventet e elementit të formës:
○ submit – kur vizitori ben submit formen <form>.
○ focus – kur perdoruesi fokusohet ne nje element si per shembull <input>.
● Eventet e tastjeres:
○ keydown dhe keyup – kur vizitori shtyp dhe më pas lëshon butonin.
● Eventet e dokumentit:
○ DOMContentLoaded – kur HTML është ngarkuar dhe përpunuar, (DOM është i ndërtuar plotësisht)
● Eventet e CSS:
○ transitionend – kur mbaron një animacion CSS.
● Ka dhe shumë evente të tjera por me lart jane perdorur eventet me te perdorura.
Menaxheret e eventeve (Event handlers)
●
●
●
●
● on<event>
● onclick
<input value="Click me" onclick="alert('Click!')" type="button">
●
● on<event>
● elem.onclick
<input id="elem" type="button" value="Click me">
<script>
elem.onclick = function() {
alert('Thank you');
};
</script>
Aksesimi i elementit me this dhe addEventListener
● this
● button this.innerHTML
<button onclick="alert(this.innerHTML)">Click me</button>
●
● handlers
●
● handlers
input.onclick = function() { alert(1); }
input.onclick = function() { alert(2); } // ,bivendos handler-in me siper
● handlers eshte
addEventListener removeEventListener
element.addEventListener(event, handler[, options]);
event handler handler
●
element.removeEventListener(event, handler[, options]);
addEventListener (shembull)
● addEventListener
<input id="elem" type="button" value="Click me"/>
<script>
function handler1() {
alert('Thanks!');
};
function handler2() {
alert('Thanks again!');
}
elem.onclick = () => alert("Hello");
elem.addEventListener("click", handler1); // Thanks!
elem.addEventListener("click", handler2); // Thanks again!
</script>
Objekti i eventit.
●
●
<input type="button" value="Click me" id="elem">
<script>
elem.onclick = function(event) {
// tregon tipin e eventit, elementin dhe kordinatat e klikimit.
alert(event.type + " at " + event.currentTarget);
alert("Coordinates: " + event.clientX + ":" + event.clientY);
};
</script>
Permbledhje
●
○ onclick="..."
○ elem.onclick = function
○ elem.addEventListener(event, handler[, phase])
removeEventListener
●
●
transtionend DOMContentLoaded addEventListener
●
Eventet e modifikuara dhe dispatchEvent
●
open
select
●
dispatchEvent
●
elem.dispatchEvent(event)
●
●
<script>
let event = new Event("click");
elem.dispatchEvent(event);
</script>
Eventet e modifikuara (CustomEvent)
● new CustomEvent
CustomEvent Event
● detail
Pas klikimit
<body>
<input type="button" id="hider" value="Click to hide the text" />
<div id="text">Text</div>
<script>
</script>
</body>
</html>
Ushtrime me Eventet (zgjidhja)
● <div id="text">
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<input type="button" id="hider" value="Click to hide the text" />
<div id="text">Text</div>
<script>
document.getElementById('hider').onclick = function() {
document.getElementById('text').hidden = true;
}
</script>
</body>
</html>
Ushtrime me Eventet (zgjidhja)
●
<input type="button" value="Click to hide">