Getting Started with jQuery Mobile

October 29, 2010

Yesterday I had a chance to get my feet wet with the Alpha 1 release of jQuery Mobile for one of my clients. Prior to yesterday I had been working with jqTouch for mobile UI.

Overall I really like the way it's built, you can simply use the data-role attribute to turn markup into mobile widgets. For example want to turn a link into a button, just use:

<a href="#section" data-role="button">Do Stuff</a>

Want to turn a ul into a list control, use data-role="listview".

I like that there is built in markup for creating the controlls, and I wish jQueryUI had some of that. For example if you want to create a button in jQueryUI you need to add some javascript $('.button').button();

With jQuery Mobile you could actually build a fully mobile app without writing any JavaScript if you wanted. So you don't really need to know jQuery to start using jQuery Mobile.

Easy to Learn

jQuery Mobile is very easy to learn, and because of that I think it is going to be a very successful project. I was able to rewrite a jqTouch app into jQuery Mobile in a couple hours, using a majority of the features.

Still an Alpha

I did find a few issues in the Alpha release that I had to work around, they all center around not being able to dynamically change the markup. For example I was populating my listview from an AJAX request, and it was not being styled properly. They have provided a way to refresh styling in the latest version of jQuery Mobile from github, you can now simply call:


You will also run into the same type of thing with the form controls, such as the select list control, and the checkbox control if you populate their values from javascript.

So which is better jQuery Mobile or jqTouch?

Right now jqTouch is a bit more stable, but I much prefer working with jQuery mobile, and I'm confident they will iron out all the issues. I was actually able to work around all issues I had, and for an Alpha release it's actually pretty well done!

More on jQuery Mobile

Look for some more blog entries on jQuery Mobile in the coming weeks. I am going to be giving a presentation on using it with PhoneGap at my local ColdFusion User Group meeting in December, so I'll be sure to post my slides here.

Related Entries

2 people found this page useful, what do you think?


Nice Pete! I'm using jQuery Mobile for to good effect. I've not used any custom jQuery code, yet, and am already happy with the results.

I just wish it looked better in IE (only tested on IE 8 so far), but I'm liking how it looks and behaves in Android, FF, Safari, and Chrome!
I spent today trying out jQuery Mobile as well. While I do like what they've done with it so far, there's definitely some room for improvement. And I kind of wish they would provide some more raw code examples: doing View Source on the demo pages doesn't really give you the current code.
@Aaron, yes I saw your implementation on, very nice!

@Brian - I had to do quite a bit of view source as well. You can just delete the hash from the address bar and then load the page to view source (since it loads the pages using ajax calls) :)
I'm running into the same listview+AJAX = no styling problem.

I'm just loading the CDN version from their site (

How did you get a later version?
@John B - I went over to and downloaded the latest. Be warned though that is not necessarily going to be a stable build, since it is just the latest from their version control.
@John I should also mention that you will need to run their Makefile to compile all the source into a single distribution file. If you are on a mac you can just run type make zip from the Terminal.
OK. I'm a bit of a newbie in the PHP world. Is this correct:

1. On their github page, I would click the "Download" button on the top right.
2. Unzip the files to a directory
3. Then "run their Makefile" to create the single CSS and JS files.
4. Include the new files on my site instead of their 1.0a1 version.

It's step #3 that's a little confusing. I have both a Mac and a PC, but all my dev experience is in the PC world. How would I make that happen?

Any advice?
@John - Yes your steps are correct.

For step 3 on your Mac, open the and then use cd to navigate to the directory you extracted the files to in step 2. Once you are in that directory type "make zip" into terminal (without the quotes) and hit return. That should build new js and css files from the downloaded source.
That worked! Thanks a lot Pete.
Is there an equivalent to the refresh call that can be made on listviews to fix the same problem with forms?
@John, there is a refresh method for the selectmenu widget, which can be invoked as $('select').selectmenu('refresh', true); the second argument (true in this example) determines if the list should be rebuilt from scratch.

Were you looking for a refresh on another form control?
Hi, really jQuery mobile rocks!
can you please post your slides providing info about PhoneGap too?

Post a Comment


Spell Checker by Foundeo

Recent Entries


did you hack my cf?