This is lecture 3 of the Beginning jQuery course. In this lecture, we focus on the JavaScript function and jQuery events handling methods.
If you come across any questions, feel free use the chat to ask me.
If you’re new to JavaScript function, I suggest to get started reading the reference from Mozilla Developer Network.
After you understand the function, I recommend reading this chapter from the Eloquent JavaScript book.
this
in JavaScriptWhen we are inside a function, sometime we may want to refer to the current context by using the special variable this
. But what is the this
actually pointing to?
A simple rule is JavaScript’s this
refers to the one that calls the function. For example:
function foo() {
console.log(this);
}
window.foo(); // `this` refers to window.
var objectA = {
hello: function(){
console.log(this);
}
};
objectA.hello(); // `this` refers to `objectA`.
objectA.hello.call(window); // ** `this` refers to `window`.
$('#input').keydown(function(){
console.log(this); // `this` refers to the $('#input').
});
** Note that we can use the call
or apply
method to change the context of any function calling
In other common object-oriented language, this
ofter refers to the same instance. In JavaScript, the this
refers to the context that calls that function.
Please make sure you read the Mozilla Developer Network’s this reference and understand the detail on how this
works.
Once you fully understand how function works, I recommend reading the Object chapter from the Eloquent JavaScript book. It shows you how we can manage objects in object oriented way.
Handling events is one of the most common tasks when writing jQuery. We often need to respond to user’s actions and provide appropriate feedbacks. The following jQuery’s events handling documentation provides a getting started guide.
http://learn.jquery.com/events/handling-events/
The delegate
method.
http://api.jquery.com/delegate/
In some cases, we need to loop through all the selected elements and apply logic on it. We can use the each
method.
Usage example:
$('selector').each(function(){
// each of the matched element
$(this).something();
});
There are prop
and attr
methods. Both methods access the attribute of the selected HTML tag. We prefer prop
most of the time, as explained in this StackOverflow answer
I created an example that demonstrates the techniques listed in this lecture. It is a list of inputs that user input names into it. User can add more inputs by clicking the “+” button. There is a confirmation dialog when submitting the form.
http://codepen.io/makzan/pen/vEQddR
After going through the links and code examples listed in this lecture, you should be able to handle different events.
—Thomas Mak
This is lecture 3 of the Beginning jQuery course. In this lecture, we focus on the JavaScript function and jQuery events handling methods.
If you come across any questions, feel free use the chat to ask me.
If you’re new to JavaScript function, I suggest to get started reading the reference from Mozilla Developer Network.
After you understand the function, I recommend reading this chapter from the Eloquent JavaScript book.
this
in JavaScriptWhen we are inside a function, sometime we may want to refer to the current context by using the special variable this
. But what is the this
actually pointing to?
A simple rule is JavaScript’s this
refers to the one that calls the function. For example:
function foo() {
console.log(this);
}
window.foo(); // `this` refers to window.
var objectA = {
hello: function(){
console.log(this);
}
};
objectA.hello(); // `this` refers to `objectA`.
objectA.hello.call(window); // ** `this` refers to `window`.
$('#input').keydown(function(){
console.log(this); // `this` refers to the $('#input').
});
** Note that we can use the call
or apply
method to change the context of any function calling
In other common object-oriented language, this
ofter refers to the same instance. In JavaScript, the this
refers to the context that calls that function.
Please make sure you read the Mozilla Developer Network’s this reference and understand the detail on how this
works.
Once you fully understand how function works, I recommend reading the Object chapter from the Eloquent JavaScript book. It shows you how we can manage objects in object oriented way.
Handling events is one of the most common tasks when writing jQuery. We often need to respond to user’s actions and provide appropriate feedbacks. The following jQuery’s events handling documentation provides a getting started guide.
http://learn.jquery.com/events/handling-events/
The delegate
method.
http://api.jquery.com/delegate/
In some cases, we need to loop through all the selected elements and apply logic on it. We can use the each
method.
Usage example:
$('selector').each(function(){
// each of the matched element
$(this).something();
});
There are prop
and attr
methods. Both methods access the attribute of the selected HTML tag. We prefer prop
most of the time, as explained in this StackOverflow answer
I created an example that demonstrates the techniques listed in this lecture. It is a list of inputs that user input names into it. User can add more inputs by clicking the “+” button. There is a confirmation dialog when submitting the form.
http://codepen.io/makzan/pen/vEQddR
After going through the links and code examples listed in this lecture, you should be able to handle different events.
—Thomas Mak