EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

35
JavaScript & jQuery Matic Jesenovec, Chairman of EESTEC LC Ljubljana & Web Developer at Abakus Plus 1 EESTEC Summer School 2012

description

http://ts.eestec.it EESTEC Summer School 2012 Web Development Class Javascript & JQuery by Matic Jesenovec

Transcript of EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Page 1: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

JavaScript & jQuery

Matic Jesenovec,

Chairman of EESTEC LC Ljubljana & Web Developer at Abakus Plus 1

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 2: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Introduction

• THE scripting language of the Web

• It copies many names from Java, otherwise they are unrelated

• Add functionality, validate forms, communicate with the server, provide better UX

• Runs on client side

• Web page should always be functional also without JS

• Today you can sometimes also use HTML5 and CSS3

2

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 3: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Embeding & linking JS in HTML files

• <script language="javascript" type= "text/javascript"> // some code </script>

• <script language="javascript" src="script.js">

• <noscript> This page looks way cooler with JavaScript </noscript>

3

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 4: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Comments

• // one line comment

• /* multiple lines comment */

4

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 5: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Variables

• Locations where you store information

• The name of your variable can contain any letter or number

• Within a function you can add var, to create local variable

• You can change the value of a variable at anytime

• JS is loosely typed – you don‘t need to tell which type of information you will assign to a variable

• Exceptions: Array and Date

• x = 3;

• s = "This is a string";

• emptyArray = new array();

• something = TRUE; 5

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 6: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Variables: Datatypes

• String – "Something"

• Number – 42

• Boolean – TRUE, FALSE

• Object

• Array – new Array(1, 2, 3);

• Date – new Date(1990, 2, 6);

• ...

• Null

• Undefined

6

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 7: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Datatypes: Arrays

• There are 1 types of people in the world. Those who start counting at 0 and those who start counting at 1.

vehicles = new Array("car", "truck", "van"); vehicles[0] // car vehicles[3] = "bicycle"; vehicles[vehicles.length-1]

anotherArray= ["First", "Second", "Last"];

EEST

EC S

um

mer

Sch

oo

l 20

12

7

Page 8: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Conditional statements

• The ability to do one thing if something is true and do another thing if it is false

x = 5; if(x == 10) { document.writelin("X equals 10"); } else { document.writelin("X doesn‘t equal 10"); }

8

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 9: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Conditionals: Switch

fruits = new Array("Banana", "Apple", "Strawberry");

for(fruit in fruits){

switch(fruit){

case "Banana ":

document.writelin("Yellow!");

break;

case "Strawberry ":

document.writelin("Red!");

break;

default:

document.writelin("Unknown!");

}

}

EEST

EC S

um

mer

Sch

oo

l 20

12

9

Page 10: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Operators

• + (Addition): Used to add numeric values or combine 2 strings of text

• - (Subtraction): Used to subtract values

• * (Multiplication): Used to multiply values

• / (Division): Used to divide values

• % (Modulus): Used to return the remainder of a division of two numbers.

• Example: 15 % 7 = 1

• ++ (Increment): Shorthand way to add one to a value.

• Example: number++;

• -- (Decrement): Shorthand way to subtract one from a value 10

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 11: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Operators: Comparison

• x == y: x equals y

• x < y: x is less than y

• x > y: x is greater than y

• x <= y: x is less than or equal to y

• x >= y: x is greater than or equal to y

• x != y: x is not equal to y

EEST

EC S

um

mer

Sch

oo

l 20

12

11

Page 12: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Operators: Logical

• && (AND): used to check if both values are true

• Example: if ( x < y && a > b )

• || (OR): used to check if at least one of the values is true

• ! (NOT): used to check if values are not equal to the variable it is being used on

• Example: if(!x)

EEST

EC S

um

mer

Sch

oo

l 20

12

12

Page 13: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Operators: Usefull tricks

• x += y; Adds x and y, then stores that value in the variable x

• x -= y; Subtracts y from x, then stores that value in the variable x

• x = (y < 5) ? 10 : 15; Shorthand way to test and then assign a value based on the test.

• If y<5 then x = 10, else x = 15 EEST

EC S

um

mer

Sch

oo

l 20

12

13

Page 14: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Loops

• Perform a repetitive action over and over until some condition is met

14

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 15: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Loops: For

• for (initial expression; condition to be met; edit the value of expression) { javascript code… }

for (var i = 1; i < 10; i++) { document.writelin(i); }

EEST

EC S

um

mer

Sch

oo

l 20

12

15

Page 16: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Loops: While

• while (condition) { code… iterator }

var i = 1; while (i < 10) { document.writelin(i); i++; }

EEST

EC S

um

mer

Sch

oo

l 20

12

16

Page 17: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Loops: Do-While

• do { code… } while (i < 10)

var i = 1; do{ document.writelin(i); i++; } while(i < 10)

EEST

EC S

um

mer

Sch

oo

l 20

12

17

Page 18: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Loops: For-In

• for (var objectVariable in objectItself) { code… }

var theUniverse = array("Mercury", "Venus", "Earth", "Mars"); for(var planet in theUniverse) { document.writelin(planet); }

EEST

EC S

um

mer

Sch

oo

l 20

12

18

Page 19: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Functions

• Groupings of statements that you can type once and then use over and over again.

• function nameOfFunction(parameter1, parameter2) { javascript code… return value; }

19

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 20: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Functions: Example

function addThese(numberOne, numberTwo) { var total = numberOne + numberTwo; return total; }

firstNumber = 3; secondNumber = 2; addition = addThese(firstNumber, secondNumber);

EEST

EC S

um

mer

Sch

oo

l 20

12

20

Page 21: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Built-in functions

• array.length

• string.charAt(index)

• string.indexOf(value)

• string.split(separator)

• string.substring(index1, index2)

• string.length()

• string.toLowerCase()

• number.toString()

• date.getDay()

• Math.round(x)

21

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 22: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

The Document Object Model

• DOM defines logical structure of HTML (XML) documents

• It enables you to build, modify, navigate and add or delete HTML elements and content

• The DOM itself is language-independent

22

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 23: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Event handlers

• JavaScript code that is not added inside the <script> tags, but rather, inside HTML tags.

• They execute JS when something happens

• onClick

• onMouseOver

• onMouseOut

• onUnload

• onLoad (only for <body> and <img>)

<a href="http://eestec.net" onClick="alert('hello!')">EESTEC</a> 23

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 24: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Firebug debugging

• www.getfirebug.com

• Find all included JS files easily

• It shows errors that accure during the execution

• Set a breakpoint and pause execution at any point

• Continue one line at a time

• Observe variable values

• Console to execute JS on the run

• console.log(„text“);

24

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 25: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

25

jQuery

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 26: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Introduction

• jQuery is a JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions.

• Download it from jquery.com and include it in your web page

• $(document).ready(function(){ // Your code here });

26

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 27: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Selectors

• Used for matching a set of elements in a document.

• * (all)

• .class

• #id

• :contains()

• :empty

$(".myClass").css("color","red");

27

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 28: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Traversing

• In addition to selectors, these methods help you select elements.

• children()

• each()

• first()

• parent()

$("div").add("p");

$('li').each(function(index) { console.log(index + ': ' + $(this).text()); });

28

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 29: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Attributes

• Methods, used to get and set DOM attributes of elements.

• addClass()

• attr()

• hasClass()

• removeClass()

• html()

• val()

$("#button").removeClass("enabled").addClass("disabled");

29

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 30: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Manipulation

• Methods for manipulating the DOM. Changing attributes, setting style properties, modifying elements,...

• append()

• css()

• remove()

• width()

• empty()

$( this ).css( "width","+=200" );

30

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 31: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

CSS

• Methods, used to get and set CSS-related properties of elements.

• css()

• position()

• addClass()

• hasClass()

p = $("p:first"); position = p.position();

31

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 32: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Events

• Methods, used to register behavior to take effect when the user interacts with the browser.

• bind(eventType [, eventData], handler(eventObject))

• click(eventData], handler(eventObject))

• keypress([eventData], handler(eventObject))

• hover(handler(eventObject))

• ...

$('#clickMe').bind('click', function() { console.log ('User clicked me!'); });

32

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 33: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Effects

• Techniques for adding animation to a web page

• animate(properties [, duration] [, easing] [, complete])

• fadeIn() / fadeOut([duration] [, callback])

• hide() / show()

• slideDown()

• toggle()

$('#book').animate({ opacity: 0.25, left: '+=50', height: 'toggle' }, 5000, function() { console.log('Animation complete.'); });

33

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 34: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

jQuery plugins

• jQuery UI

• Dragging

• Resizing

• Sorting

• Datepicker (calendar)

• Progressbar

• ...

34

EEST

EC S

um

mer

Sch

oo

l 20

12

Page 35: EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

35

Thank You!

EEST

EC S

um

mer

Sch

oo

l 20

12