javascript dom event

24
Click to add Text Javascript Presented by Bunlong VAN http://geekhmer.github.io DOM & Event

Upload: bunlong-van

Post on 08-Jul-2015

216 views

Category:

Software


1 download

DESCRIPTION

Javascript Dom & Event

TRANSCRIPT

Page 1: Javascript dom event

Click to add Text

Javascript

Presented by Bunlong VAN

http://geekhmer.github.io

DOM & Event

Page 2: Javascript dom event

The Disclaimer

Page 3: Javascript dom event

DOM

•DOM (Document Object Modeling)•Retrieving Nodes

• document.getElementById(id)• document.getElementsByName(name)• Node.getElementsByTagName(tagName)

Page 4: Javascript dom event

Document Tree Structure

<html>

<body>

<h1>Heading 1</h1>

<p>Paragraph.</p>

<h2>Heading 2</h2>

<p>Paragraph.</p>

</body>

</html>

#text

H1

H2

P

BODY

HTML

#document

HEAD

#text

P

#text

#text

Page 5: Javascript dom event

child, sibling, parent

#text

H1 H2P

BODY

#text

P

#text#text

lastChild

lastC

hild

lastC

hild

lastC

hild

lastC

hild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

Page 6: Javascript dom event

child, sibling, parent (Con.)

#text

H1 H2P

BODY

#text

P

#text#text

lastChild

lastC

hild

lastC

hild

lastC

hild

lastC

hild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

nextSibling nextSibling nextSibling

previousSibling previousSibling previousSibling

Page 7: Javascript dom event

child, sibling, parent (Con.)

#text

H1

#text #text#text

lastChild

lastC

hild

lastC

hild

lastC

hild

lastC

hild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

nextSibling nextSibling nextSibling

previousSibling previousSibling previousSibling

pa

ren

tNo

de

pa

ren

tNo

de

pa

ren

tNo

de

pa

ren

tNo

de

pa

ren

tNo

de

H2P P

BODY

Page 8: Javascript dom event

child, sibling, parent (Con.)

#text

H1 H2P

BODY

#text

P

#text#text

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

firs

tCh

ild

nextSibling nextSibling nextSibling

Page 9: Javascript dom event

Child Nodes

0

P

childNodes

BODY

H2H1

1 2

P

3

Page 10: Javascript dom event

Style

•node.style.stylename

•background-color•border-radius•font-size•list-style-type•word-spacing•z-index

•backgroundColor•borderRadius•fontSize•listStyleType•wordSpacing•zIndex

Page 11: Javascript dom event

Making Elements

document.createElement(tagName);

document.createTextNode(text);

node.cloneNode(); // clone an individual element

node.cloneNode(true); // clone an element and all of its des

Page 12: Javascript dom event

Linking Ements

node.appendChild(new);

node.insertBefore(new, sibling);

node.replaceChild(new, old);

old.parentNode.replaceChild(new, old);

Page 13: Javascript dom event

Removing Elements

node.removeChild(old); // It returns the node

old.parentNode.removeChild(old);

Page 14: Javascript dom event

innerHTML

•The W3C standard does not provide access to the HTML parser•All browsers implement Microsoft's innerHTML property•node.innerHTML = “<p>this is text</p>”;

Page 15: Javascript dom event

Which Way is Better?

•It is better to build or clone elements and append them to the document?•Or is it better to complile an HTML text and use innerHTML to realize it?•Favor clean code and easy maintenance•Favor performance only in extreme cases

Page 16: Javascript dom event

Event

•The browser has an event-driven, single-threaded, asynchronous programming model•Events are targeted to particular nodes•Event cause the invocation of event handler functions

Page 17: Javascript dom event

Mouse Event

The target is the topmost (z-index) node containing the cursor:

•click•dblclick•mousedown•mousemove•mouseout•mouseover•mouseup

Page 18: Javascript dom event

Input Event

•blur•change•focus•keydown•keyup•reset•submit

The target is the node having focus:

Page 19: Javascript dom event

Event Handler

•Classic– node[“on” + type] = handler;

•Microsoft– node.attachEvent(“on” + type, handler);

•W3C– node.addEventListener(type, handler, false);

var handler = function(e) {e = e || event;var target = e.target || e.srcElement;…

}

Page 20: Javascript dom event

Bubbling

Bubbling means that the event is given to the target, and then its parent, and so on until the event is canceled.

Page 21: Javascript dom event

Why Bubble?

•Suppose you have 100 draggable objects•You could attach 100 sets of event handlers to those objects•Or you could attach one set of event handlers to the container of the 100 objects

Page 22: Javascript dom event

Cancel Bubbling

•Cancel bubbling to keep the parent nodes from seeing th event:

e.cancelBubble = true;If(e.stopPropagation) {

e.stopPropagation();}

Page 23: Javascript dom event

Prevent Default Action

•An event handler can prevent a browser action associated with the event (such as submitting a form):

e.returnValue = false;If(e.preventDefault) {

e.preventDefault();}Return false;

Page 24: Javascript dom event