2012-02-23 9 views
5

Sto tentando di aggiungere un collegamento alla mia pagina a seconda della pagina in cui ci si trova già. Sto usando Squarespace per costruire questo sito, quindi il modo più semplice per farlo è con Javascript o Jquery.Aggiunta di un collegamento con Jquery

Penso che ci sia qualcosa di sbagliato in questa sintassi che mi manca. Ho già provato a uscire dalle virgolette con un \, ma non funzionava. Se sto solo inviando il testo, funziona bene, ma sembra che si rompa quando provo a farlo funzionare con un link.

if(loc == pageOne) { 
$("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
    }else{ 
    if(loc == pageOneB){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
    }else{ 
    if(loc == pageTwo){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects\">Previous Page</a></div> ") 
    } 
} 
} 

Modifica: ho appena controllato e sembra che i collegamenti funzionino in Chrome, ma non in Firefox.

Un'altra modifica: il collegamento funziona anche in Safari. Immagino che il problema ora sia perché non in Firefox? C'è qualcosa in questo metodo che Firefox non supporta?

+1

Utilizzare le virgolette singole nell'istruzione append e mantenere le virgolette doppie (senza escape) nel testo. Es: '$ ('# pages'). Append ('

')' – j08691

risposta

6

Il tuo codice sembra funzionare bene ma è possibile utilizzare else if dichiarazioni invece di nidificate if dichiarazioni:

if(loc == pageOne) { 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
} else if (loc == pageOneB){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
} else if (loc == pageTwo){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects\">Previous Page</a></div> ") 
}​ 

Questo vuole essere un demo: http://jsfiddle.net/Rba6w/

+0

Grazie, lo cambierò. Il mio codice funziona perfettamente per me in tutto tranne FIREFOX? Non so perché. Mostra il testo ma non è un collegamento. In ogni altro browser si collega alla pagina successiva. – patricko

+0

@patricko Quindi il tuo problema è probabile che il tuo valore 'loc' sia diverso in Firefox rispetto ad altri browser. Subito prima delle istruzioni 'if', metti un' console.log (loc) '(o' alert (loc) ') per vedere qual è il valore nei diversi browser. Potresti voler farlo con le variabili 'pageOne'/pageOneB' /' pageTwo' (non sono sicuro di come si impostano, ma è sempre una buona idea vedere cosa stai effettivamente trattando). – Jasper

+0

Il valore loc ora è l'URL, e lo sto chiamando chiamando 'window.location' È diverso in firefox? – patricko

0

vedere se questo funziona

if(loc == pageOne) { 
$("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>') 
    }else{ 
    if(loc == pageOneB){ 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>') 
    }else{ 
    if(loc == pageTwo){ 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects">Previous Page</a></div>') 
    } 
} 
} 
+0

Non funziona. Prima che ricevessi il testo, questo non mostra nulla. – patricko

+0

l'ho modificato. controllalo adesso. –

+0

Man, il collegamento non funziona ancora in firefox. – patricko

0

Prova questo:

switch(loc) 
{ 
case pageOne: 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>'); 
    break; 
case pageOneB: 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>'); 
    break; 
case pageTwo: 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects">Previous Page</a></div>"'); 
    break; 
} 
Problemi correlati