2009-04-23 7 views
6

Basta chiedersi se qualcuno è a conoscenza di un modo in cui cablare jquery per eseguire una funzione per quando un utente fa clic su un collegamento o schede su un collegamento e colpisce invio.Rileva quando il collegamento è attivato - o tramite clic o scheda e immettere

Voglio intercettare quell'attivazione di un collegamento ed eseguire un'azione prima che la pagina venga cambiata, ma voglio farlo in entrambi i casi.

risposta

9

Il 'click' evento verrà generato in entrambi i casi, questo ti porterà ciò che si vuole:

$('a').click(function(){ 
    alert('perform action here'); 
}); 
+0

E 'possibile ottenere l'URL del link che è stato cliccato? –

+2

sure: alert ($ (this) .attr ('href')); – pjesi

+0

O 'this.href;' Oppure, in alcuni browser, 'this.getAttribute ('href');' jQuery non è (o non dovrebbe essere) necessario per quella parte. –

2

è abbastanza semplice in realtà ... Quando premi enter su un elemento, agisce come un clic nei browser. Non c'è bisogno di fare nulla di speciale.

$('a.links_to_bind').bind('click', function() { 
    /* do your stuff... */ 
    return false; 
}); 

Edit: Se si desidera che la pagina di cambiare dopo le vostre azioni sono completi, si consiglia di aggiungere uno statemenet condizionale per quel return false. Qualcosa di simile:

if(everythings_good) { 
    return true; 
} else { 
    return false; 
} 
-1
$('a').keydown(function() { 

return false; // Prevent default action 

}); 

$('a').keyup(function(event){ 

    if(event.keyCode == '13'){ 

      $(this).find('button.mychoice').click(); 

    } 

}); 


// This does the trick for both IE and FF.