SlideShare a Scribd company logo
1
Event Handling
(Web Development)
2
During the last lecture we discussed
Functions & Variable Scope
• We looked at functions and their use for
solving simple problems
• We became familiar with a couple of
JavaScript’s built-in functions
• We became familiar with the concept of local
and global variables
3
Function
A group of statements that is put together
(or defined) once and then can be used
(by reference) repeatedly on a Web page
Also known as subprogram, procedure,
subroutine
4
Advantages of Functions
• Number of lines of code is reduced
• Code becomes easier to read & understand
• Code becomes easier to maintain as changes
need to be made only at a single location
instead multiple locations
5
function writeList( heading, words ) {
document.write( heading + "<BR>" ) ;
for ( k = 0 ; k < words.length ; k = k + 1 ) {
document.write( words[ k ] + "<BR>" ) ;
}
}
Keyword
Function
identifier
Pair of
parenthesis
Function ‘arguments’
separated by commas
Function
definition
enclosed
in a pair
of curly
braces
6
Arguments of a Function
• A comma-separated list of data
• Arguments define the interface between the
function and the rest of the Web page
• Arguments values are passed to the
function by value (some popular languages
pass arguments ‘by reference’ as well)
7
To ensure that a function is defined
before it is called up, define all
functions in the HEAD portion of Web
pages
8
Two Ways of Calling Functions
function add( a, b ) {
c = a + b ;
return c ;
}
sum = add( 2, 4 ) ;
document.write( sum ) ;
function popUp( message ) {
window.alert( message ) ;
}
popUp( “Warning!” ) ;
A function call
appearing as part
of a statement.
Definitions of
such functions
include a ‘return’
statement
A function call
appearing as a
complete
statement
9
What Would this Statement Do?
factorial( factorial ( 3 ) ) ;
This is termed as the
recursive
use of a function
10
Methods
• Methods are functions
• They are unusual in the sense that they
are stored as properties of objects
11
Object: A named collection of properties
prop 1
prop 2
prop 5
name
prop 3
prop 4
A collection
of properties
All objects have the
“name” property: it
holds the name of
the object (collection)
prop 7
prop 6
prop 8
12
Predefined, Top-Level or Built-In Functions
• Event handlers are not the only functions that
come predefined with JavaScript. There are
many others.
• Practically, there is no difference between
predefined functions and those that are defined
by the programmer (termed as user-defined or
custom functions)
• There are many of them, but here we discuss
only two: parseInt( ), parseFloat( )
13
Local Variables
• Declaring variables (using the var
keyword) within a function, makes them
local
• They are available only within the
function and hold no meaning outside of
it
14
Local –vs- Global
• Global variables can make the logic of a Web
page difficult to understand
• Global variables also make the reuse and
maintenance of your code much more difficult
HEURISTIC:
If it’s possible to
define a variable
as local, do it!
15
Event Handlers
• Special-purpose functions that come predefined
with JavaScript
• They are unusual in the sense that they are
mostly called from the HTML part of a Web
page and not the <SCRIPT> … </SCRIPT> part
16
Today’s Goal:
Event Handlers
• To become able to appreciate the concept of
event handlers:
– What are they?
– What do they do?
– How do we benefit from them?
• To learn to write simple programs that use
event handlers
17
What is Event Handling?
• Capturing events and responding to them
• The system sends events to the program and
the program responds to them as they arrive
• Events can include things a user does - like
clicking the mouse - or things that the system
itself does - like updating the clock. Today we
will exclusively focus on user-events
18
Event Driven Programs
• Programs that can capture and respond to
events are called ‘event-driven programs’
• JavaScript was specifically designed for writing
such programs
• Almost all programs written in JavaScript are
event-driven
19
JavaScript Handling of Events
• Events handlers are placed in the BODY part of
a Web page as attributes in HTML tags
• Events can be captured and responded to
directly with JavaScript one-liners embedded in
HTML tags in the BODY portion
• Alternatively, events can be captured in the
HTML code, and then directed to a JavaScript
function for an appropriate response
20
21
<INPUT
type=“submit”
name=“sendEmail”
value=“Send eMail”
onMouseOver=
“if (document.sendEmail.sender.value.length < 1)
window.alert(‘Empty From field! Please correct’)”
>
Additional JavaScript code for the smart ‘Send
eMail’ button that does not allow itself to be
clicked if the “From” text field is left blank
22
That was event handling through
what we may call ‘in-line JavaScript’
That is, the event was captured and
handled with a JavaScript one-liner
that was embedded in the HTML tag
23
In-Line JavaScript Event Handling (1)
• Event handlers are placed in the BODY portion
of a Web page as attributes of HTML tags
• The event handler attribute consists of 3 parts:
1.The identifier of the event handler
2.The equal sign
3.A string consisting of JavaScript statements
enclosed in double or single quotes
24
In-Line JavaScript Event Handling (2)
• Multiple JavaScript statements (separated by
semicolons) can be placed in that string, but all
have to fit in a single line; no newline
characters are allowed in that string
• Due to this limitation, sophisticated event
handling is not possible with in-line event
handling
25
Another - more sophisticated - way of
accomplishing the same task
26
onMouseOver=“checkForm( )”
JavaScript that goes between the <SCRIPT>, </SCRIPT> tags:
JavaScript included as an attribute of the “Send eMail” button:
function checkForm() {
if ( document.sendEmail.sender.value.length < 1) {
window.alert( “Empty From field! Please correct” );
}
}
27
Usage Guideline
• For very short scripts, “all code in the tag”
works well
• The “code in the HEAD portion” is the right
choice for developing larger JavaScript scripts
– It makes the code easier to read
– It allows the reuse of a function for multiple event
handlers
28
Another event-handling example; this
time from lecture 18
29
30
onClick=“vuWindow()”
JavaScript that goes between the <SCRIPT>, </SCRIPT> tags:
JavaScript included as an attribute of the “New Window” button:
function vuWindow() {
window.open(“http://www.vu.edu.pk/”) ;
}
31
A Few of My Favorite Event Handlers
onClick
onDblClick
onMouseOver
onMouseDown
onFocus onBlur
onReset
onSubmit
onLoad
onUnload
32
There are many more: there is an
expanded, but still incomplete list in
your book
Now let’s look at some of these error
handlers in a bit more detail
33
onFocus & onBlur
• onFocus executes the specified JavaScript
code when a window receives focus or when a
form element receives input focus
• onBlur executes the specified JavaScript code
when a window loses focus or a form element
loses focus
34
35
<INPUT type="text" name="age"
onBlur="checkAge( ) "
>
JavaScript that goes between the <SCRIPT>, </SCRIPT> tags:
JavaScript included as an attribute of the INPUT tag:
function checkAge( ) {
if( parseInt( document.form1.age.value ) < 12 ) {
window.alert( "Stop! You are younger than 12" ) ;
}
}
36
<HTML><HEAD>
<TITLE>onBlur( ) Demo</TITLE>
<SCRIPT>
function checkAge() {
if( parseInt(document.form1.age.value) < 12) {
window.alert("Stop! You are younger than 12" ) ;
}
}
</SCRIPT></HEAD>
<BODY bgcolor="#66FFCC">
<FORM name="form1" method="post" action="">
<TABLE border="1">
<TR> <TD>Age</TD>
<TD><INPUT type="text" name="age" onBlur="checkAge()">
</TD></TR><TR> <TD>Phone Number</TD>
<TD><INPUT type="text" name="phNo"></TD>
</TR><TR> <TD><INPUT type="reset" value="Reset"></TD>
<TD><INPUT type="submit" value="Submit"></TD></TR>
</TABLE></FORM></BODY></HTML>
37
onLoad & onUnload
• onLoad executes the specified JavaScript code
when a new document is loaded into a window
• onUnload executes the specified JavaScript
code when a user exits a document
• What is the key difference between these 2 and
the 4 event handlers (onMouseOver, onClick,
onFocus, onBlur) that we have used so far?
38
onUnloadDemo.htm
onUnloadDemo.htm
http://www.vu.edu.pk/
onUnloadDemo.htm
39
<HTML>
<HEAD>
<TITLE>onUnload Demo</TITLE>
<SCRIPT>
function annoyUser( ) {
currentUrl = window.location ;
window.alert( "You can't leave this page" ) ;
window.location = currentUrl ;
}
</SCRIPT></HEAD>
<BODY onUnload="annoyUser( )">
This page uses the onUnload event handler …
</BODY></HTML>
40
<HTML>
<HEAD>
<TITLE>onUnload Demo</TITLE>
<SCRIPT>
function annoyUser( ) {
currentUrl = window.location ;
window.alert( "You can't leave this page" ) ;
window.location = currentUrl ;
}
</SCRIPT></HEAD>
<BODY onUnload="annoyUser( )">
This page uses the onUnload event handler …
</BODY></HTML>
41
More Uses for onLoad/onUnload?
• onLoad can be used to open multiple Windows
when a particular document is opened
• onUnload can be used to say “Thank you for
the visit” when a user is leaving a Web page
• At times, a user opens multiple inter-dependent
windows of a Web site (e.g. VULMS).
onUnload can be used to warn that all child
Windows will become inoperable if the user
closes the parent Window
42
A Note on Syntax (1)
• Mixed-case capitalization of event handlers
(e.g. onClick) is a convention (but not a
requirement) for JavaScript event handlers
defined in HTML code. Using ‘ONCLICK’ or
‘onclick’ as part of a an HTML tag is perfectly
legal as well
43
A Note on Syntax (2)
• At times, you may wish to use event handlers in
JavaScript code enclosed in <SCRIPT>,
</SCRIPT> tags
• In those cases you have to strictly follow the
JavaScript rule for all event handler identifiers:
they must all be typed in small case, e.g.
‘onclick’ or ‘onmouseover’
44
A misleading statement from Lecture 18
• I stated:
JavaScript is case sensitive. Only the first of the
following will result in the desired function – the rest
will generate errors or other undesirable events:
– onMouseClick – OnMouseClick
– onmouseclick – ONMOUSECLICK
• That statement is incorrect in two ways:
1. All four will work fine as part of HTML tags
2. Only the ‘all small case’ version will be interpreted
as intended in JavaScript code
45
During Today’s Lecture …
• We looked at the concept of event-driven
programs and event handlers
– What are they?
– What do they do?
– How do we benefit from them?
• We wrote simple programs to demonstrate the
capabilities of a few event handlers

More Related Content

Similar to Event Programming JavaScript (20)

Learn javascript easy steps
Learn javascript easy stepsLearn javascript easy steps
Learn javascript easy steps
prince Loffar
 
Extjs
ExtjsExtjs
Extjs
Girish Srivastava
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
Tarek Yehia
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
Walid Ashraf
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
ShahDhruv21
 
Java scriptfunction
Java scriptfunctionJava scriptfunction
Java scriptfunction
Jesus Obenita Jr.
 
GDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOM
GDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOMGDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOM
GDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOM
udaymore742
 
Lecture 10.pdf
Lecture 10.pdfLecture 10.pdf
Lecture 10.pdf
ssuser0890d1
 
unit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygv
unit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygvunit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygv
unit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygv
utsavsd11
 
JavaScript
JavaScriptJavaScript
JavaScript
Bharti Gupta
 
Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)
Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)
Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)
Nuzhat Memon
 
Java Script basics and DOM
Java Script basics and DOMJava Script basics and DOM
Java Script basics and DOM
Sukrit Gupta
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
teach4uin
 
01 Introduction - JavaScript Development
01 Introduction - JavaScript Development01 Introduction - JavaScript Development
01 Introduction - JavaScript Development
Tommy Vercety
 
Learning About JavaScript (…and its little buddy, JQuery!)
Learning About JavaScript (…and its little buddy, JQuery!)Learning About JavaScript (…and its little buddy, JQuery!)
Learning About JavaScript (…and its little buddy, JQuery!)
Julie Meloni
 
JavaScript From Scratch: Events
JavaScript From Scratch: EventsJavaScript From Scratch: Events
JavaScript From Scratch: Events
Michael Girouard
 
Web 5 | JavaScript Events
Web 5 | JavaScript EventsWeb 5 | JavaScript Events
Web 5 | JavaScript Events
Mohammad Imam Hossain
 
8.-Javascript-report powerpoint presentation
8.-Javascript-report powerpoint presentation8.-Javascript-report powerpoint presentation
8.-Javascript-report powerpoint presentation
JohnLagman3
 
Javascript note for engineering notes.pptx
Javascript note for engineering notes.pptxJavascript note for engineering notes.pptx
Javascript note for engineering notes.pptx
engineeradda55
 
Client side scripting using Javascript
Client side scripting using JavascriptClient side scripting using Javascript
Client side scripting using Javascript
Bansari Shah
 
Learn javascript easy steps
Learn javascript easy stepsLearn javascript easy steps
Learn javascript easy steps
prince Loffar
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
Tarek Yehia
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
Walid Ashraf
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
ShahDhruv21
 
GDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOM
GDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOMGDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOM
GDG On Campus NBNSCOE Web Development Workshop Day 2 : JavaScript and DOM
udaymore742
 
unit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygv
unit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygvunit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygv
unit4 wp.pptxjvlbpuvghuigv8ytg2ugvugvuygv
utsavsd11
 
Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)
Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)
Std 12 Computer Chapter 2 Cascading Style Sheet and Javascript (Part-2)
Nuzhat Memon
 
Java Script basics and DOM
Java Script basics and DOMJava Script basics and DOM
Java Script basics and DOM
Sukrit Gupta
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
teach4uin
 
01 Introduction - JavaScript Development
01 Introduction - JavaScript Development01 Introduction - JavaScript Development
01 Introduction - JavaScript Development
Tommy Vercety
 
Learning About JavaScript (…and its little buddy, JQuery!)
Learning About JavaScript (…and its little buddy, JQuery!)Learning About JavaScript (…and its little buddy, JQuery!)
Learning About JavaScript (…and its little buddy, JQuery!)
Julie Meloni
 
JavaScript From Scratch: Events
JavaScript From Scratch: EventsJavaScript From Scratch: Events
JavaScript From Scratch: Events
Michael Girouard
 
8.-Javascript-report powerpoint presentation
8.-Javascript-report powerpoint presentation8.-Javascript-report powerpoint presentation
8.-Javascript-report powerpoint presentation
JohnLagman3
 
Javascript note for engineering notes.pptx
Javascript note for engineering notes.pptxJavascript note for engineering notes.pptx
Javascript note for engineering notes.pptx
engineeradda55
 
Client side scripting using Javascript
Client side scripting using JavascriptClient side scripting using Javascript
Client side scripting using Javascript
Bansari Shah
 

More from MuhammadRehan856177 (10)

Lecture 10.pptx
Lecture 10.pptxLecture 10.pptx
Lecture 10.pptx
MuhammadRehan856177
 
Intrusion .ppt
Intrusion .pptIntrusion .ppt
Intrusion .ppt
MuhammadRehan856177
 
Botnets Attacks.pptx
Botnets Attacks.pptxBotnets Attacks.pptx
Botnets Attacks.pptx
MuhammadRehan856177
 
Lecture 2.pptx
Lecture 2.pptxLecture 2.pptx
Lecture 2.pptx
MuhammadRehan856177
 
Lecture 3.pptx
Lecture 3.pptxLecture 3.pptx
Lecture 3.pptx
MuhammadRehan856177
 
Lecture 2.pptx
Lecture 2.pptxLecture 2.pptx
Lecture 2.pptx
MuhammadRehan856177
 
Lecture 2.ppt
Lecture 2.pptLecture 2.ppt
Lecture 2.ppt
MuhammadRehan856177
 
Introduction to JavaScript (1).ppt
Introduction to JavaScript (1).pptIntroduction to JavaScript (1).ppt
Introduction to JavaScript (1).ppt
MuhammadRehan856177
 
3. HTML Forms.ppt
3. HTML Forms.ppt3. HTML Forms.ppt
3. HTML Forms.ppt
MuhammadRehan856177
 
2. HTML Tables.ppt
2. HTML Tables.ppt2. HTML Tables.ppt
2. HTML Tables.ppt
MuhammadRehan856177
 
Ad

Recently uploaded (20)

社内勉強会資料_Chain of Thought .
社内勉強会資料_Chain of Thought                           .社内勉強会資料_Chain of Thought                           .
社内勉強会資料_Chain of Thought .
NABLAS株式会社
 
02 - Ethics & Professionalism - BEM, IEM, MySET.PPT
02 - Ethics & Professionalism - BEM, IEM, MySET.PPT02 - Ethics & Professionalism - BEM, IEM, MySET.PPT
02 - Ethics & Professionalism - BEM, IEM, MySET.PPT
SharinAbGhani1
 
MODULE 6 - 1 VAE - Variational Autoencoder
MODULE 6 - 1 VAE - Variational AutoencoderMODULE 6 - 1 VAE - Variational Autoencoder
MODULE 6 - 1 VAE - Variational Autoencoder
DivyaMeenaS
 
Top Cite Articles- International Journal on Soft Computing, Artificial Intell...
Top Cite Articles- International Journal on Soft Computing, Artificial Intell...Top Cite Articles- International Journal on Soft Computing, Artificial Intell...
Top Cite Articles- International Journal on Soft Computing, Artificial Intell...
ijscai
 
ACEP Magazine Fifth Edition on 5june2025
ACEP Magazine Fifth Edition on 5june2025ACEP Magazine Fifth Edition on 5june2025
ACEP Magazine Fifth Edition on 5june2025
Rahul
 
Structural Design for Residential-to-Restaurant Conversion
Structural Design for Residential-to-Restaurant ConversionStructural Design for Residential-to-Restaurant Conversion
Structural Design for Residential-to-Restaurant Conversion
DanielRoman285499
 
Rigor, ethics, wellbeing and resilience in the ICT doctoral journey
Rigor, ethics, wellbeing and resilience in the ICT doctoral journeyRigor, ethics, wellbeing and resilience in the ICT doctoral journey
Rigor, ethics, wellbeing and resilience in the ICT doctoral journey
Yannis
 
First Review PPT gfinal gyft ftu liu yrfut go
First Review PPT gfinal gyft  ftu liu yrfut goFirst Review PPT gfinal gyft  ftu liu yrfut go
First Review PPT gfinal gyft ftu liu yrfut go
Sowndarya6
 
22PCOAM16 _ML_Unit 3 Notes & Question bank
22PCOAM16 _ML_Unit 3 Notes & Question bank22PCOAM16 _ML_Unit 3 Notes & Question bank
22PCOAM16 _ML_Unit 3 Notes & Question bank
Guru Nanak Technical Institutions
 
May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...
May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...
May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...
gerogepatton
 
Electrical and Electronics Engineering: An International Journal (ELELIJ)
Electrical and Electronics Engineering: An International Journal (ELELIJ)Electrical and Electronics Engineering: An International Journal (ELELIJ)
Electrical and Electronics Engineering: An International Journal (ELELIJ)
elelijjournal653
 
FISICA ESTATICA DESING LOADS CAPITULO 2.
FISICA ESTATICA DESING LOADS CAPITULO 2.FISICA ESTATICA DESING LOADS CAPITULO 2.
FISICA ESTATICA DESING LOADS CAPITULO 2.
maldonadocesarmanuel
 
Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...
Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...
Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...
BeHappy728244
 
Webinar On Steel Melting IIF of steel for rdso
Webinar  On Steel  Melting IIF of steel for rdsoWebinar  On Steel  Melting IIF of steel for rdso
Webinar On Steel Melting IIF of steel for rdso
KapilParyani3
 
fHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghj
fHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghjfHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghj
fHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghj
yadavshivank2006
 
May 2025: Top 10 Read Articles Advanced Information Technology
May 2025: Top 10 Read Articles Advanced Information TechnologyMay 2025: Top 10 Read Articles Advanced Information Technology
May 2025: Top 10 Read Articles Advanced Information Technology
ijait
 
Axial Capacity Estimation of FRP-strengthened Corroded Concrete Columns
Axial Capacity Estimation of FRP-strengthened Corroded Concrete ColumnsAxial Capacity Estimation of FRP-strengthened Corroded Concrete Columns
Axial Capacity Estimation of FRP-strengthened Corroded Concrete Columns
Journal of Soft Computing in Civil Engineering
 
Transformimet e sinjaleve numerike duke perdorur transformimet
Transformimet  e sinjaleve numerike duke perdorur transformimetTransformimet  e sinjaleve numerike duke perdorur transformimet
Transformimet e sinjaleve numerike duke perdorur transformimet
IndritEnesi1
 
fy06_46f6-ht30_22_oil_gas_industry_guidelines.ppt
fy06_46f6-ht30_22_oil_gas_industry_guidelines.pptfy06_46f6-ht30_22_oil_gas_industry_guidelines.ppt
fy06_46f6-ht30_22_oil_gas_industry_guidelines.ppt
sukarnoamin
 
Software Developer Portfolio: Backend Architecture & Performance Optimization
Software Developer Portfolio: Backend Architecture & Performance OptimizationSoftware Developer Portfolio: Backend Architecture & Performance Optimization
Software Developer Portfolio: Backend Architecture & Performance Optimization
kiwoong (daniel) kim
 
社内勉強会資料_Chain of Thought .
社内勉強会資料_Chain of Thought                           .社内勉強会資料_Chain of Thought                           .
社内勉強会資料_Chain of Thought .
NABLAS株式会社
 
02 - Ethics & Professionalism - BEM, IEM, MySET.PPT
02 - Ethics & Professionalism - BEM, IEM, MySET.PPT02 - Ethics & Professionalism - BEM, IEM, MySET.PPT
02 - Ethics & Professionalism - BEM, IEM, MySET.PPT
SharinAbGhani1
 
MODULE 6 - 1 VAE - Variational Autoencoder
MODULE 6 - 1 VAE - Variational AutoencoderMODULE 6 - 1 VAE - Variational Autoencoder
MODULE 6 - 1 VAE - Variational Autoencoder
DivyaMeenaS
 
Top Cite Articles- International Journal on Soft Computing, Artificial Intell...
Top Cite Articles- International Journal on Soft Computing, Artificial Intell...Top Cite Articles- International Journal on Soft Computing, Artificial Intell...
Top Cite Articles- International Journal on Soft Computing, Artificial Intell...
ijscai
 
ACEP Magazine Fifth Edition on 5june2025
ACEP Magazine Fifth Edition on 5june2025ACEP Magazine Fifth Edition on 5june2025
ACEP Magazine Fifth Edition on 5june2025
Rahul
 
Structural Design for Residential-to-Restaurant Conversion
Structural Design for Residential-to-Restaurant ConversionStructural Design for Residential-to-Restaurant Conversion
Structural Design for Residential-to-Restaurant Conversion
DanielRoman285499
 
Rigor, ethics, wellbeing and resilience in the ICT doctoral journey
Rigor, ethics, wellbeing and resilience in the ICT doctoral journeyRigor, ethics, wellbeing and resilience in the ICT doctoral journey
Rigor, ethics, wellbeing and resilience in the ICT doctoral journey
Yannis
 
First Review PPT gfinal gyft ftu liu yrfut go
First Review PPT gfinal gyft  ftu liu yrfut goFirst Review PPT gfinal gyft  ftu liu yrfut go
First Review PPT gfinal gyft ftu liu yrfut go
Sowndarya6
 
May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...
May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...
May 2025 - Top 10 Read Articles in Artificial Intelligence and Applications (...
gerogepatton
 
Electrical and Electronics Engineering: An International Journal (ELELIJ)
Electrical and Electronics Engineering: An International Journal (ELELIJ)Electrical and Electronics Engineering: An International Journal (ELELIJ)
Electrical and Electronics Engineering: An International Journal (ELELIJ)
elelijjournal653
 
FISICA ESTATICA DESING LOADS CAPITULO 2.
FISICA ESTATICA DESING LOADS CAPITULO 2.FISICA ESTATICA DESING LOADS CAPITULO 2.
FISICA ESTATICA DESING LOADS CAPITULO 2.
maldonadocesarmanuel
 
Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...
Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...
Direct Current circuitsDirect Current circuitsDirect Current circuitsDirect C...
BeHappy728244
 
Webinar On Steel Melting IIF of steel for rdso
Webinar  On Steel  Melting IIF of steel for rdsoWebinar  On Steel  Melting IIF of steel for rdso
Webinar On Steel Melting IIF of steel for rdso
KapilParyani3
 
fHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghj
fHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghjfHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghj
fHUINhKG5lM1WBBk608.pptxfhjjhhjffhiuhhghj
yadavshivank2006
 
May 2025: Top 10 Read Articles Advanced Information Technology
May 2025: Top 10 Read Articles Advanced Information TechnologyMay 2025: Top 10 Read Articles Advanced Information Technology
May 2025: Top 10 Read Articles Advanced Information Technology
ijait
 
Transformimet e sinjaleve numerike duke perdorur transformimet
Transformimet  e sinjaleve numerike duke perdorur transformimetTransformimet  e sinjaleve numerike duke perdorur transformimet
Transformimet e sinjaleve numerike duke perdorur transformimet
IndritEnesi1
 
fy06_46f6-ht30_22_oil_gas_industry_guidelines.ppt
fy06_46f6-ht30_22_oil_gas_industry_guidelines.pptfy06_46f6-ht30_22_oil_gas_industry_guidelines.ppt
fy06_46f6-ht30_22_oil_gas_industry_guidelines.ppt
sukarnoamin
 
Software Developer Portfolio: Backend Architecture & Performance Optimization
Software Developer Portfolio: Backend Architecture & Performance OptimizationSoftware Developer Portfolio: Backend Architecture & Performance Optimization
Software Developer Portfolio: Backend Architecture & Performance Optimization
kiwoong (daniel) kim
 
Ad

Event Programming JavaScript

  • 2. 2 During the last lecture we discussed Functions & Variable Scope • We looked at functions and their use for solving simple problems • We became familiar with a couple of JavaScript’s built-in functions • We became familiar with the concept of local and global variables
  • 3. 3 Function A group of statements that is put together (or defined) once and then can be used (by reference) repeatedly on a Web page Also known as subprogram, procedure, subroutine
  • 4. 4 Advantages of Functions • Number of lines of code is reduced • Code becomes easier to read & understand • Code becomes easier to maintain as changes need to be made only at a single location instead multiple locations
  • 5. 5 function writeList( heading, words ) { document.write( heading + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>" ) ; } } Keyword Function identifier Pair of parenthesis Function ‘arguments’ separated by commas Function definition enclosed in a pair of curly braces
  • 6. 6 Arguments of a Function • A comma-separated list of data • Arguments define the interface between the function and the rest of the Web page • Arguments values are passed to the function by value (some popular languages pass arguments ‘by reference’ as well)
  • 7. 7 To ensure that a function is defined before it is called up, define all functions in the HEAD portion of Web pages
  • 8. 8 Two Ways of Calling Functions function add( a, b ) { c = a + b ; return c ; } sum = add( 2, 4 ) ; document.write( sum ) ; function popUp( message ) { window.alert( message ) ; } popUp( “Warning!” ) ; A function call appearing as part of a statement. Definitions of such functions include a ‘return’ statement A function call appearing as a complete statement
  • 9. 9 What Would this Statement Do? factorial( factorial ( 3 ) ) ; This is termed as the recursive use of a function
  • 10. 10 Methods • Methods are functions • They are unusual in the sense that they are stored as properties of objects
  • 11. 11 Object: A named collection of properties prop 1 prop 2 prop 5 name prop 3 prop 4 A collection of properties All objects have the “name” property: it holds the name of the object (collection) prop 7 prop 6 prop 8
  • 12. 12 Predefined, Top-Level or Built-In Functions • Event handlers are not the only functions that come predefined with JavaScript. There are many others. • Practically, there is no difference between predefined functions and those that are defined by the programmer (termed as user-defined or custom functions) • There are many of them, but here we discuss only two: parseInt( ), parseFloat( )
  • 13. 13 Local Variables • Declaring variables (using the var keyword) within a function, makes them local • They are available only within the function and hold no meaning outside of it
  • 14. 14 Local –vs- Global • Global variables can make the logic of a Web page difficult to understand • Global variables also make the reuse and maintenance of your code much more difficult HEURISTIC: If it’s possible to define a variable as local, do it!
  • 15. 15 Event Handlers • Special-purpose functions that come predefined with JavaScript • They are unusual in the sense that they are mostly called from the HTML part of a Web page and not the <SCRIPT> … </SCRIPT> part
  • 16. 16 Today’s Goal: Event Handlers • To become able to appreciate the concept of event handlers: – What are they? – What do they do? – How do we benefit from them? • To learn to write simple programs that use event handlers
  • 17. 17 What is Event Handling? • Capturing events and responding to them • The system sends events to the program and the program responds to them as they arrive • Events can include things a user does - like clicking the mouse - or things that the system itself does - like updating the clock. Today we will exclusively focus on user-events
  • 18. 18 Event Driven Programs • Programs that can capture and respond to events are called ‘event-driven programs’ • JavaScript was specifically designed for writing such programs • Almost all programs written in JavaScript are event-driven
  • 19. 19 JavaScript Handling of Events • Events handlers are placed in the BODY part of a Web page as attributes in HTML tags • Events can be captured and responded to directly with JavaScript one-liners embedded in HTML tags in the BODY portion • Alternatively, events can be captured in the HTML code, and then directed to a JavaScript function for an appropriate response
  • 20. 20
  • 21. 21 <INPUT type=“submit” name=“sendEmail” value=“Send eMail” onMouseOver= “if (document.sendEmail.sender.value.length < 1) window.alert(‘Empty From field! Please correct’)” > Additional JavaScript code for the smart ‘Send eMail’ button that does not allow itself to be clicked if the “From” text field is left blank
  • 22. 22 That was event handling through what we may call ‘in-line JavaScript’ That is, the event was captured and handled with a JavaScript one-liner that was embedded in the HTML tag
  • 23. 23 In-Line JavaScript Event Handling (1) • Event handlers are placed in the BODY portion of a Web page as attributes of HTML tags • The event handler attribute consists of 3 parts: 1.The identifier of the event handler 2.The equal sign 3.A string consisting of JavaScript statements enclosed in double or single quotes
  • 24. 24 In-Line JavaScript Event Handling (2) • Multiple JavaScript statements (separated by semicolons) can be placed in that string, but all have to fit in a single line; no newline characters are allowed in that string • Due to this limitation, sophisticated event handling is not possible with in-line event handling
  • 25. 25 Another - more sophisticated - way of accomplishing the same task
  • 26. 26 onMouseOver=“checkForm( )” JavaScript that goes between the <SCRIPT>, </SCRIPT> tags: JavaScript included as an attribute of the “Send eMail” button: function checkForm() { if ( document.sendEmail.sender.value.length < 1) { window.alert( “Empty From field! Please correct” ); } }
  • 27. 27 Usage Guideline • For very short scripts, “all code in the tag” works well • The “code in the HEAD portion” is the right choice for developing larger JavaScript scripts – It makes the code easier to read – It allows the reuse of a function for multiple event handlers
  • 28. 28 Another event-handling example; this time from lecture 18
  • 29. 29
  • 30. 30 onClick=“vuWindow()” JavaScript that goes between the <SCRIPT>, </SCRIPT> tags: JavaScript included as an attribute of the “New Window” button: function vuWindow() { window.open(“http://www.vu.edu.pk/”) ; }
  • 31. 31 A Few of My Favorite Event Handlers onClick onDblClick onMouseOver onMouseDown onFocus onBlur onReset onSubmit onLoad onUnload
  • 32. 32 There are many more: there is an expanded, but still incomplete list in your book Now let’s look at some of these error handlers in a bit more detail
  • 33. 33 onFocus & onBlur • onFocus executes the specified JavaScript code when a window receives focus or when a form element receives input focus • onBlur executes the specified JavaScript code when a window loses focus or a form element loses focus
  • 34. 34
  • 35. 35 <INPUT type="text" name="age" onBlur="checkAge( ) " > JavaScript that goes between the <SCRIPT>, </SCRIPT> tags: JavaScript included as an attribute of the INPUT tag: function checkAge( ) { if( parseInt( document.form1.age.value ) < 12 ) { window.alert( "Stop! You are younger than 12" ) ; } }
  • 36. 36 <HTML><HEAD> <TITLE>onBlur( ) Demo</TITLE> <SCRIPT> function checkAge() { if( parseInt(document.form1.age.value) < 12) { window.alert("Stop! You are younger than 12" ) ; } } </SCRIPT></HEAD> <BODY bgcolor="#66FFCC"> <FORM name="form1" method="post" action=""> <TABLE border="1"> <TR> <TD>Age</TD> <TD><INPUT type="text" name="age" onBlur="checkAge()"> </TD></TR><TR> <TD>Phone Number</TD> <TD><INPUT type="text" name="phNo"></TD> </TR><TR> <TD><INPUT type="reset" value="Reset"></TD> <TD><INPUT type="submit" value="Submit"></TD></TR> </TABLE></FORM></BODY></HTML>
  • 37. 37 onLoad & onUnload • onLoad executes the specified JavaScript code when a new document is loaded into a window • onUnload executes the specified JavaScript code when a user exits a document • What is the key difference between these 2 and the 4 event handlers (onMouseOver, onClick, onFocus, onBlur) that we have used so far?
  • 39. 39 <HTML> <HEAD> <TITLE>onUnload Demo</TITLE> <SCRIPT> function annoyUser( ) { currentUrl = window.location ; window.alert( "You can't leave this page" ) ; window.location = currentUrl ; } </SCRIPT></HEAD> <BODY onUnload="annoyUser( )"> This page uses the onUnload event handler … </BODY></HTML>
  • 40. 40 <HTML> <HEAD> <TITLE>onUnload Demo</TITLE> <SCRIPT> function annoyUser( ) { currentUrl = window.location ; window.alert( "You can't leave this page" ) ; window.location = currentUrl ; } </SCRIPT></HEAD> <BODY onUnload="annoyUser( )"> This page uses the onUnload event handler … </BODY></HTML>
  • 41. 41 More Uses for onLoad/onUnload? • onLoad can be used to open multiple Windows when a particular document is opened • onUnload can be used to say “Thank you for the visit” when a user is leaving a Web page • At times, a user opens multiple inter-dependent windows of a Web site (e.g. VULMS). onUnload can be used to warn that all child Windows will become inoperable if the user closes the parent Window
  • 42. 42 A Note on Syntax (1) • Mixed-case capitalization of event handlers (e.g. onClick) is a convention (but not a requirement) for JavaScript event handlers defined in HTML code. Using ‘ONCLICK’ or ‘onclick’ as part of a an HTML tag is perfectly legal as well
  • 43. 43 A Note on Syntax (2) • At times, you may wish to use event handlers in JavaScript code enclosed in <SCRIPT>, </SCRIPT> tags • In those cases you have to strictly follow the JavaScript rule for all event handler identifiers: they must all be typed in small case, e.g. ‘onclick’ or ‘onmouseover’
  • 44. 44 A misleading statement from Lecture 18 • I stated: JavaScript is case sensitive. Only the first of the following will result in the desired function – the rest will generate errors or other undesirable events: – onMouseClick – OnMouseClick – onmouseclick – ONMOUSECLICK • That statement is incorrect in two ways: 1. All four will work fine as part of HTML tags 2. Only the ‘all small case’ version will be interpreted as intended in JavaScript code
  • 45. 45 During Today’s Lecture … • We looked at the concept of event-driven programs and event handlers – What are they? – What do they do? – How do we benefit from them? • We wrote simple programs to demonstrate the capabilities of a few event handlers