2011-12-18 11 views
7

Ho un tag di ancoraggio come questoAnchor tag jQuery Clicca

<a href="javascript:anchorScr()" id="anch1" class ="af-link"/> 

Mi sta prendendo due clic sul tag di ancoraggio per rispondere alla funzione javascript anchorScr();

function anchorScr() { 
jQuery('a').click(function (event) { 
    var id = $(this).attr("id"); 
    alert(id); 
    }); 
} 

Sto facendo qualcosa di sbagliato? Perché il mio anchorScr() non viene chiamato al primo clic?

risposta

10

Questa chiama la funzione anchorScr quando l'ancora viene fatto clic:

href="javascript:anchorScr()" 

La funzione quindi attribuisce un gestore click evento a tutti gli elementi a.

Rimuovere il href e solo questo:

jQuery('a').click(function (event) { 
    var id = $(this).attr("id"); 
    alert(id); 
}); 

Il codice verrà eseguito - allegando il gestore click evento a tutti gli elementi a. Probabilmente dovresti eseguirlo solo su ready() per assicurarti che la pagina sia completamente caricata nel DOM.

+0

Semplice come quello. Grazie grazie. –

0
<a href="#" id="anch1" class ="af-link">click here</a> 


jQuery(document).ready(function(){ 
jQuery('a').click(function (event) { 
    var id = $(this).attr("id"); 
    alert(id); 
    }); 
});