Heads up! To view this whole video, sign in with your Courses Plus account or enroll in your free 7-day trial. Sign In Enroll
Well done! You have completed HTML5 Mobile Web Applications!
You have completed HTML5 Mobile Web Applications!
Preview
In this video, we take a look at more advanced options that are available when defining components in jQuery Mobile.
This video doesn't have any notes.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
[Jim Hoskins] So we've created our button and it's new, 0:00
but it would be nice if we had a little icon there with maybe a + 0:03
to indicate that we're going to be creating something. 0:06
That's something that jQuery can handle for us, so let's actually take a look at the documentation 0:09
to see where we would find all of this information. 0:13
So I have the jQuery Mobile documentation open 0:16
jquerymobile.com/demos/1.0a3 0:19
and most of the actual examples are going to be down here, in the Components section. 0:21
Now, everything you want to know about buttons is going to be within 0:25
this part of the documentation. 0:28
So here's just a basic overview of how we create a button. 0:30
We can see that they're showing you how to create the data-role of a button 0:33
and create a normal button, 0:38
and we can see that we can use a lot of different types in order to do that. 0:40
There's a lot of different ways to create a button with inputs or <a tags 0:43
or the button tag, 0:47
and we see that there's options for creating button icons, 0:50
so let's take a look in here. 0:53
Now, the documentation says in order to do an icon, we need to give it the data-icon attribute 0:55
and we want to give it one of the values, 1:01
so let's take a look at the example values that we have down here. 1:03
So we have an arrow left, we have an arrow right, up, and down, 1:06
we have an X button for something like delete, 1:11
we have a +, which looks good for us, 1:13
we have a minus, a checkmark, gear, refresh, a forward, back, 1:16
a grid button, a start button, alert button, info button, home button, and search button. 1:25
So all of those, I think for a new button, our + is going to be the best one 1:32
that we can use, so if we go up here, we see that all we need to do 1:36
is give it the attribute data-icon of "plus". 1:40
So going back to our code, inside of our <a tag here, 1:43
we're just going to add data-icon="plus". 1:46
And if we save it out and go back to our code, 1:52
we can see we now have a + added to our button. 1:56
Creating buttons isn't something we can only do in the title bar. 2:01
We can actually create styled buttons within the content of our page. 2:04
So let's try that out and replace our Hello World! with another new button 2:07
that's going to do the exact same thing. 2:11
So I'm going to remove this Hello World! here 2:13
and let's do the same thing--we'll create an <a with an href="#new" 2:16
give it a label of New Note 2:21
and close our </a tag. 2:26
So I'm going to save this out and show you exactly what a link looks like 2:27
in any other context. 2:31
So if we refresh, we can see that it's just a styled link with an underline 2:33
and a blue coloring to it. 2:38
It's not by default a button like it is when we add a link into the title bar. 2:41
We do actually need to add a data-role attribute to our <a tag, 2:45
so let's do the data-role="button" 2:50
and when we refresh it, 2:53
we can see we get this nice white button that says New Note. 2:56
Now, it looks very wide; especially on this, and that's just because 3:00
buttons by default take up a large amount of space. 3:03
It will look a little better on a mobile device, so if we refresh it, 3:07
we could see we have the New Note here, 3:10
and we can see it fills the space no matter how we have our device oriented. 3:12
Now, we also want to add the data-icon="plus" 3:17
to give it its + icon. 3:24
And if we go back, we can see we now have the icon there. 3:26
Now, I'm not really a big fan of this white button on a gray background. 3:29
and that's something that jQuery Mobile makes really easy to change, 3:33
and jQuery Mobile allows us to do this using themes. 3:36
Now, you may think of themes as something you apply to an entire application 3:40
so maybe something that skins the entire application. 3:44
And while it does have different themes in that respect, 3:47
it also has the idea of themes within a theme. 3:50
Basically, different color schemes within the same theme 3:53
and those schemes can be used for different purposes 3:56
to communicate different information. 3:59
To find out more about that, we can open up the jQuery documentation again 4:01
and we can look at the theme framework. 4:09
Now, it gives us a nice overview of what it's used for, 4:11
but we can see that there are five different themes within each theme. 4:14
By default, we've seen the A theme, which is a dark bar, 4:19
but there's a B, C, D, and E theme. 4:22
So what we want to do is sort of switch between these five different themes 4:24
within our application to communicate different ideas. 4:28
So here, we can see how different widgets are themed differently 4:35
based on their theme within the actual application. 4:38
Now, this is all done using the data-theme attribute 4:41
just like any other data attribute. 4:45
We can change the theme at almost any level of our application, 4:48
so if we want to change the theme of an entire page, 4:51
we could add the data-theme attribute to a page div 4:54
or we could just do it for a header, or even something like a single widget, like a button. 4:57
So I'm going to do that right here, and I'm going to add the attribute data-theme 5:02
and then all I need to do is give it the theme I want to do, 5:08
which would be A, B, C, D, or E. 5:11
Now, some theme sets may have more or fewer themes to them, 5:13
but the default theme has A-E. 5:17
So if we did data-theme="a" and we go back to our code and refresh, 5:19
we can see that the theme for "a" is very dark. 5:25
Now, if I wanted to try theme "b" 5:29
we see that it's a nice blue, it catches your attention, 5:33
it looks pretty good. 5:36
Let's try theme "c." 5:38
Now, here's where we get the white one, so "c" was the default 5:41
in this particular context. 5:44
The default theme will actually change from context to context. 5:46
You can see right here in the title bar by default this button with the A or dark theme. 5:49
Let's look at "d." 5:55
That's even lighter; not really what we're looking for. 5:57
And finally, let's try "e." 6:00
Now, it really catches your attention, but I'm not really a fan of it. 6:02
I think of all these themes, "b" really makes sense for this button, 6:05
so I'm going to leave this as "b" 6:08
and that looks pretty good. 6:10
Just to show you, let's actually change the theme of our entire page. 6:13
So up here, let's do data-theme="b">. 6:18
So if I refresh, and this is how our theme would look 6:22
if our entire page was themed with the "b" theme. 6:26
Now, I don't really like that, so I'm going to go ahead and remove it 6:29
and leave the default theming hierarchy as is. 6:32
So now we've created two buttons that really do the same thing, 6:36
which is actually nothing right now. 6:39
We just get an error. 6:42
But let's add another thing, which would be a list view 6:44
which will allow us to dive into different lists of notes that we've created. 6:47
Now, I'm going to have our two different lists be the alphabetical lists of notes 6:51
based on the title as well as-- eventually when we add our geolocation in-- 6:56
the notes nearest to us. 7:00
So what I'm looking for is a list view, 7:02
and we can see an example of that if we go back here and take a look 7:05
at our List Views page in our documentation. 7:09
So if we take a look at the documentation here, 7:14
we can look at different examples by looking right here. 7:17
So this is one view we could use which is a sort of edge-to-edge view 7:21
if something's taking up the full page. 7:25
This would work in some cases, but I think for our homepage, we want something 7:28
that's sort of inset. 7:32
So if we take a look here, we can find different types of lists 7:34
The one I'm looking for is inset list, which give us this sort of grouped list that's sort of 7:44
inset from the rest of the page and can be used independently 7:50
and it doesn't have to take up the entire page. 7:54
In order to do that, we're just going to have to add another attribute to our list. 7:58
But the basics for creating a list view is to create an unordered list 8:03
and we're going to give it a data-role of list view, 8:09
which says I want this to be a list view widget. 8:12
Again, we can theme this, just like anything else, 8:15
but then the <li items within our list view are going to become those nice little buttons. 8:18
So let's go back to our code, and just below this new button in our content, 8:23
I just want to create a <ul. 8:27
Let's just bring this up on the page a little bit. 8:32
We'll give it a data-role="listview">. 8:38
Now, inside of this, I just want to create list items, so an <li 8:45
and our first one we will make an <a tag and this will make it a link to another page. 8:50
So let's do <a and href, and we'll call our alphabetical list #all> 8:55
and we'll say All Notes, at least for now. 9:02
We can change this a little bit later and make sure to close our <a tag 9:06
and let's see what we get when we load it in our browser. 9:11
Flip back to our code, and so far, it doesn't look all that great 9:15
because we haven't made an inset, so it's going edge-to-edge here, 9:21
and it's sort of eating up this button because this style of link 9:24
is not really compatible with having other things in our content view. 9:28
So if we go back, we can add data-inset= attribute 9:32
and we'll call this "true". 9:39
And if we refresh, we can see this changes the style to inset 9:43
so it can cooperate with other items in our content view. 9:47
Now, let's just add another item into our list view. 9:51
We'll call it "#nearest" 9:54
and we'll say Nearest Notes. 10:01
So if we refresh that, we can see that it now has the rounded corners 10:05
on the top of the first one and the bottom of the second one, 10:10
and then it has the appropriate borders between the two of them. 10:13
Now, of course, if we click them, we're not going to get anywhere, 10:16
but it's going to work once we add the pages into our application. 10:20
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up