Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/04/2011, 08h21   #1
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 88
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : avril 2009
Messages : 88
Points : 39
Points : 39
Par défaut Visibilité de $(this)

Bonjour,
j'ai le code qui suit :
Code :
1
2
3
4
5
6
7
8
9
$('.like,.dislike').bind('click',function(event){
		event.preventDefault();
		// ici $(this) fait reference au lien cliqué
	    $.get($(this).attr('href'),function(response){ 
	 	   if(response == 'success')
	 		  // modifie le texte de l'element courant
				// ici $(this) ne fait plus reference au lien cliqué
	    });
	});
La premiere ligne recupere tous les elements qui ont la classe .like ou .dislike et leur attribue une fonction quand on leur clique dessus. Ces elements sont des <a>.

Ce que je cherche a faire, c'est changer le texte du lien cliqué quand reponse = 'success'.

J'ai essaye :
mais $(this) ne fait pas reference au lien cliqué.

Comment puis je donc recuperer cet element dans ma fonction de retour ?
Merci beaucoup !
Bastien

ps: desole clavier qwerty
doobinay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 10h12   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Bonjour,
une fois la fonction affectée à un élément tu as accès directement à l'élément via le this tout court même avec jQuery.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 11h20   #3
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 88
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : avril 2009
Messages : 88
Points : 39
Points : 39
Salut !
Merci pour ta reponse.

Si je fais cela m'affiche: "undefined" dans la fonction de retour.
doobinay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 12h36   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
il te faut préserver la référence au lien puisque tu as un get
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$('.like,.dislike').bind('click', function (event){
  event.preventDefault();
  // garde reference object
  var oLien = this;
  // envoi action
  $.get($(this).attr('href'), function (response){
    if (response == 'success'){
      // utilisation de l'objet sur reponse
      oLien.innerHTML = 'BINGO !';
    }
  });
});
peut être mieux à faire avec jQuery, mais je connais peu!
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 13h46   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
je rectifies en utilisant les objet jQuery, dommage de ne pas les utiliser
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$('.like,.dislike').bind('click', function (event){
  event.preventDefault();
  // garde reference object
  var oLien = $(this);
  // envoi action
  $.get( oLien.attr('href'), function (response){
    if( response == 'success'){
      // utilisation de l'objet sur reponse
      oLien.html( 'BINGO!');
    }
  });
});
cela me paraît plus jQuery...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/04/2011, 01h59   #6
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 88
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : avril 2009
Messages : 88
Points : 39
Points : 39
Merci NoSmoking ! Ca fonctionne parfaitement !
Tu me retires une epine du pied !
doobinay est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h38.


 
 
 
 
Partenaires

Hébergement Web