had the same issue - came across thread. Found the solution after a little digging, might be helpful to some coders.
browser / computer style jquery treats the entire HTML page loaded as the DOM. But JQM treats an individual divs defined as pages, and so the interaction is built around those divs, not the entire page.
so <div id=my_main_page></div> would be a page within your mobile app. And you'll load all your pages in the same single HTML page load. thus creating the issue with the .ready() function noted.
if you turning your old JQ app into an JQM app, just put a "master div" around the entire document (after body and close div before </body>).
something like this:
<html>
<!--
all your head / link stuff here
--/>
<body>
<script>
$('#my_main_page').live('pagecreate',function(event)
{
console.log('page created');
}); // not sure if this is required, I put it just so I could see the pagecreate firing.
$('#my_main_page').live('pageinit',function(event)
{
console.log('page init');
//all your original JS can be called from here ...
//and fires once!!!!!!
//this area is like the original $(document).ready() function,
//so do everything here like you did in your old ready() func.
});
</script>
<div id=my_main_page>
<!--
this is your entire html DOM from before.
--/>
</div>
</body>
</html>
hopefully folks find that helpful!