2012-04-25 9 views
7

Usar jQuery Mobile Me gustaría deshabilitar la llamada ajax en los enlaces dentro de una parte específica del DOM.Eliminar la llamada ajax de los enlaces regulares con jQuery Mobile

no quiero poner un

data-ajax = false 

cada vez que no quiero utilizar el ajax jquery mobile.

Por ejemplo, cualquier enlace que es un hijo de 'contenido':

<div class="content"> 
    <a href="http://externalwebsite.com">External Link</a> 
</div> 

me gustaría añadir los 'datos-ajax = false' en todos los eslabones que es un hijo de 'contenido'

¿Hay alguna manera de hacer esto con jquery?

Respuesta

18

Si desea desactivar el comportamiento de enlace ajax de una etiqueta de anclaje, se puede poner rel=external en el enlace y el enlace se carga sin Ajax y su URL a continuación, será habitual.

http://jquerymobile.com/demos/1.0a4.1/#docs/pages/docs-navmodel.html

<a href="User/somepage" rel="external" />I wont be using ajax for navigation</a> 

Si usted quiere hacer esto en jQuery para algunos unas etiquetas dentro de div de contenido, puede tratar como esto

$(function(){ 
    $(".content a").each(function(){ 
    $(this).attr("rel","external"); 
    }); 
}); 

Aquí es una muestra http://jsfiddle.net/4WEBk/3/

El más versión simplificada. (Gracias a tandu para señalar)

$(function(){ 
    $(".content a").attr("rel","external"); 
}); 
+0

Esta es una alternativa más lenta. La llamada a '.each' no es necesaria ya que la versión setter de' .attr' funciona en una colección. También puede llamar a '$ (". Content a "). Each()' que evita agregar a la tabla de símbolos. –

+0

¿No sería tan malo agregar "rel =" external "' como agregar 'data-ajax = false'? Buena respuesta, pero creo que crea los mismos requisitos que el OP no desea. –

+0

@JoshAllen OP estaba pidiendo una manera fácil de agregar automáticamente un atributo a un selector específico ... si quería dejar los atributos * off *, podría resolver eso haciendo nada. –

5
$(".content a").attr('data-ajax', false); 
0

he tenido que añadir rel = "externo" y target = "_ self" también para hacer que funcione.

Bajo ciertas condiciones, se usarán las solicitudes http normales en lugar de las solicitudes Ajax. Un caso donde esto es cierto es cuando se vincula a páginas en sitios web externos. También puede especificar que una solicitud HTTP normal, sea realizadas a través del siguiente enlace atributos:

  • rel = externa

  • objetivo (con cualquier valor, tales como "_blank")

Cuestiones relacionadas