2012-04-25 15 views
7

Utilizzo di jQuery Mobile Vorrei disabilitare la chiamata ajax sui collegamenti all'interno di una parte specifica del DOM.Rimuovere una chiamata Ajax dai collegamenti regolari con jQuery Mobile

Non voglio mettere un

data-ajax = false 

ogni volta io non voglio usare il jquerymobile ajax.

Per esempio, ogni link che è un figlio di 'contenuto':

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

Vorrei aggiungere la 'data-ajax = false' su ogni link che è un figlio di 'contenuto'

C'è un modo per farlo con jquery?

risposta

18

Se si desidera disattivare il comportamento di collegamento ajax da un tag di ancoraggio, si può mettere rel=external nel link e il link caricare senza Ajax e l'URL sarà quindi al solito.

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> 

Se si vuole fare questo in jQuery per alcuni un tag all'interno dei contenuti div, si può provare in questo modo

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

Ecco un esempio http://jsfiddle.net/4WEBk/3/

Il più versione semplificata. (Grazie a tandu per il puntamento)

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

Questa è un'alternativa più lenta. La chiamata a '.each' non è necessaria poiché la versione setter di' .attr' funziona su una raccolta. Puoi anche chiamare '$ (". A "). Each()' che evita di aggiungere alla tabella dei simboli. –

+0

Non aggiungere 'rel =" external "' è tanto male quanto aggiungere 'data-ajax = false'? Buona risposta, ma penso che crei gli stessi requisiti che l'OP non vuole. –

+0

@JoshAllen l'OP chiedeva un modo semplice per aggiungere automaticamente un attributo a uno specifico selettore .. se voleva lasciare gli attributi * off *, poteva risolverlo senza fare nulla. –

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

ho dovuto aggiungere rel = "esterno" e target = "_ self" anche per farlo funzionare.

In determinate condizioni, verranno utilizzate normali richieste HTTP anziché richieste Ajax. Un caso in cui questo è vero è quando si collega alle pagine su siti web esterni . È inoltre possibile specificare che una richiesta HTTP normale essere effettuate tramite i seguenti attributi link:

  • rel = esterno obiettivo

  • (con qualsiasi valore, come ad esempio "_blank")

Problemi correlati