2010-06-02 14 views
5

Ho il seguente codice HTML nel back-end, es.Come catturare un clic su un valore href usando jQuery

<div class="navi"> 
    <a class="" href="0"></a> 
    <a class="" href="1"></a> 
    <a class="" href="2"></a> 
    <a class="" href="3"></a> 
</div> 

Ci scusiamo per la domanda di fondo, ma vorrei utilizzare jQuery per catturare clic dell'utente quando scattano solo dal valore href di "0"

In sostanza vogliono nascondere un div chiamato "info" quando l'utente fa clic sul dove l'href = "0"

Non sai come fare?

Grazie.

risposta

8

È possibile utilizzare il attribute-equals selector, come questo (anche se non credo che sia una valida href):

$("a[href=0]").click(function() { 
    $("#info").hide(); 
}); 

Un approccio migliore, se possibile, sarebbe quella di dare al <a> una migliore href che i punti al <div>, in questo modo:

<div class="navi"> 
    <a class="" href="#info"></a> 
    <a class="" href="#info1"></a> 
    <a class="" href="#info2"></a> 
    <a class="" href="#info3"></a> 
</div> 

quindi è possibile utilizzare un gestore di clic più generico, relativo al corrispondente <div> in questo modo:

$(".navi a").click(function() { 
    $(this.hash).toggle(); 
}); 

Questo sarebbe alternare <div id="info"> quando si fa clic sul collegamento href="#info", gli altri lo stesso o ... Se il link si riferiscono a tutti i div, questo è un modo molto migliore per andare, e si degrada con grazia con javascript disabilitato .

+0

Penso che dovresti 'return false;' su quello ..;) – Reigel

+0

@Reigel - Attualmente va nella posizione di quel div nella pagina, se non lo volessi potresti 'return false;' or' e .preventDefault(); ', ma di solito * non lo vuoi *, il modo in cui ti permette di aggiustare questo div mostrando se premi F5 per esempio, o bookmarking, ecc ... la navigazione hash ha molti usi. Ricorda se si tratta di un collegamento hash, non stai lasciando la pagina. –

+0

ahhh bene, buon punto Nick;) – Reigel

Problemi correlati