I had a similar issue on the iPad. It works on my Android devices but not iOS stuff. Found out it was because I had to bind it to the jQuery Event "vclick" and now it works. Since you're using the JS attr onclick, I'm not sure.
Yeah the problem seems to rest with the usage of href="#", my coworkers think jquery mobile may be hijacking that for some purpose.
We also pull the items from ajax when the page is loaded. In fact we've got several pages, that loads different kind of data to each list. That's why my concern about using id's. On one page the id is the customer id presented on the list item, and on next page id is the product id. Both times a click on the list should trigger an ajax-call and load the next page using that id as the key. Maybe it would work with classes but it feels wrong setting a class to 1000,1001,1002 etc.