jQuery Mobile 1.1.0 RC1 Modificación de HREF para publicaciones AJAX en iOS Safari

Descargo de responsabilidad: estoy usando jQuery Mobile 1.1.0 RC1 que aún no es una versión estable. Tengo un enlace que necesita publicar una request AJAX y devolver una respuesta JSON pero cuando se hace clic en el enlace parece que jQuery Mobile cambia la HREF a un hash (#) en iOS Safari en el iPhone. No lo hace al probar en browseres con agentes de usuario de iPhone. Aquí está mi HTML básico y JS para mostrar lo que tengo:

<a href="/link/to/ajaxpost/">Send Ajax Request</a> 

y el JS

 $('#tab a').on('click', function(e){ var $this = $(this); var jsonUrl = $this.attr("href"); alert(jsonUrl); $.mobile.showPageLoadingMsg(); $.ajax({ type: "POST", url: jsonUrl, success: function(data) { $.mobile.hidePageLoadingMsg(); alert(data); } }); return false; }); 

El valor de "jsonUrl" se convierte en "#" (en lugar de la url a mi request de ajax) y luego el valor de la variable de datos devuelve la página completa y no la fuente de JSON que deseo. Lo extraño es que esto solo sucede en iOS Safari en el iPhone. Funciona bien y la fuente JSON vuelve cuando bash el sitio jQuery Mobile con un agente de usuario diferente en OSX Safari o Firefox.

He intentado agregar rel = "external" y data-type = "ajax" al enlace y no lo soluciona. También estoy usando jQuery Mobile 1.1.0 RC1, pero no estoy seguro de si ese es el problema o si simplemente no estoy usando correctamente jQuery Mobile. También no tengo ningún otro JS específico de JQuery Mobile en mi código, así que tal vez me falta algo que solucione esto. Aprecie la ayuda.

Solutions Collecting From Web of "jQuery Mobile 1.1.0 RC1 Modificación de HREF para publicaciones AJAX en iOS Safari"

En lugar de:

 $this.attr('href') 

Utilizar esta:

 $this.data('href') || $this.attr('href') 

jQuery Mobile 1.1.0RC1 y on (incluido el lanzado 1.1.0) establecerán el href en cualquier enlace a # cuando se click él, y almacenará el href en un atributo data-href , hasta que se complete haciendo lo suyo, luego lo vuelva a colocar . Solo lo hace en iOS Mobile Safari.

He blogeado un poco más sobre esto, con enlaces a discusiones relacionadas con github issues y alguna información sobre cómo aplicar esto con Ruby on Rails jQuery UJS aquí:

http://scottwb.com/blog/2012/06/29/jquery-mobile-breaks-your-hrefs-on-ios-mobile-safari/