11540 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

Declare ta fonction addText2() en dehors et appelle la a l'interieur de ta fonction qui gere le clique.
function addText2 (...) {
 ...
}
$('....').click(function() { 
   addText2($(this).text()); 
   $(this).off('click').removeAttr('href');
   return false;        
});

Modifié par martint (13 Aug 2012 - 16:43)
ca devrait etre $('#monLien') et non pas $('monLien'). Mais perso je le remplacerais par $('.blabla')

Si tu veux desactiver tous les liens une fois clique et non pas seulement celui qui a recu le clic, alors remplace
$(this).off('click').removeAttr('href');


par
$('.blabla').off('click').removeAttr('href');
Hello, ce n'est pas très compliqué ce que tu souhaites faire.

je vois déjà une erreur de syntaxe, il y a un slash de trop devant ta déclaration de fonction

/function addText2(instext2) {


De plus je te suggère de relire la doc jQuery, tout ajout d'évènement ou instruction utilisant l'objet jQuery doit être "wrappé" dans un :

$(document).ready(function () {
// tes instructions jQuery, bind ou autre ...
});


Pour ton usage regarde également du côté de one qui permet de binder une seule fois un event handler sur un objet, au lieu de "bind" ou "click"
Modifié par beyriem (13 Aug 2012 - 19:17)
Faut pas oublier de s'hydrater hein Smiley smile

Tu sembles valider que la fonction addText2 est ok, donc ceci devrait fonctionner.

<script type='text/javascript'>
function addText2(instext2) {
   alert('fonction addText2: instext2='+instext2); // pour verifier que ta fonction est bien appelée au click.
	// ... ta fonction
}

$(document).ready(function () {

$('.blabla').one('click', function() { // handler appelé une seule fois
 addText2( $(this).text()); 
 $(this).attr('href', '#'); // invalide le lien courant
 return false;        
});

});
</script>
Pages :