Event Handling

jQuery Mobile provides new events available using the typical jQuery methods such as bind or live.

Page Events

We are used to normal HTML page events, such as load and DOMready events applied by the browser for each HTTP page loaded in the current session. In a jQuery Mobile framework, we have different elements where we apply events. As we already know, a jQuery Mobile document will have different pages (internal or loaded externally), so we need to think in terms of jQuery Mobile pages for loading.

Every page (element with data-role="page") has a set of different events that we can handle globally (for all the pages at the same time) or singly for an individual page.

To handle page events globally, we can call $(document).bind or to be more specific $(":jqmData(role='page')").bind. We can also use live instead of bind to allow binding to future pages to be added to the DOM in the future.

Every page has creation, loading, and showing events.

Creation events

Every page has its own creation or initialization events. The events available are:

pagebeforecreate

After the page is inserted in the DOM and before its widgets are created.

pagecreate

After the page is created but before widgets are rendered.

pageinit

After the page is fully loaded. This should be the most used event for a page.

pageremove

After the page was removed from the DOM (usually when it was an AJAX-loaded page that is not currently the active page).

For example, we can bind a pageinit event using the jQuery live method: ...

Get jQuery Mobile: Up and Running now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.