IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Event click ne se déclenche pas


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Par défaut Event click ne se déclenche pas
    Bonjour,

    une question assez bête, mais qui me fait m'arracher les cheveux...

    J'ai un bouton censé lancer diverses actions. Bon rien de bien extraordinaire.

    Sauf que là, il faut que je clique deux fois sur le bouton pour que l'event se lance. Et ce comportement n'est pas aléatoire, il se reproduit à tous les coups. Je suis incapable de voir d'où ça vient, d'autant plus que juste au dessus dans mon js, j'ai exactement les même bouts de codes (boutons avec event click)...

    Donc si quelqu'un a déjà rencontré le problème où a une idée, ce serait vraiment parfait...

    Merci d'avance


    Voilà le bout de code incriminé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $("#bloc-bas-btn32").livequery(
    		function() {
    			$(this).bind("click", function() {
                                                   [...]
    				$.ajax({
    					type: "POST",
    					url: "action.action",
    					data:{},
     
    					success: function(msg) {				
    						[...]
    					}
    				});
    			});
    	});
    Edit :
    La partie HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		  <a href="#" cssStyle="float:left;" id="bloc-bas-btn32">
    		  	<img style="float:left;margin:12px 3px" src="img/form-bas-btn-valider.gif" />
    		  </a>

    (J'utilise le plugin livequery car je suis sur la version 1.2.6)

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Par défaut
    Bon je vois d'où ça vient.
    En fait, la partie où est située le bouton n'a pas le focus de la souris (c'est une partie qui se charge via ajax). Donc il faut que je clique une fois dedans pour faire passer le focus sur la zone, et ensuite c'est bon, ça fonctionne.

    Comment remédier à ce phénomène?

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Suggestion : abandonner livequery, passer à la version 1.3 de jQuery et utiliser la fonction live() au lieu de bind().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $("...").live("click", function(){
          ...
      });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 50
    Par défaut
    Lol...

    Non c'est pas possible...

    Et ceci dit, ça revient exactement a la même chose que de faire ça (et ça ne marche pas mieux) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $("#bloc-bas-btn31").livequery("click", 
                  function() {
                             [...]				
    				$.ajax({
    					   type: "POST",
    					   url: "action.action",
    					   data: "url=" + url,
    					   contentType: "application/x-www-form-urlencoded",
     
    					   success: function(msg) {
    							[...]
    					   }
    				});
    	});

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Par défaut
    Dans le pire des cas sur ton element tu ajoutes un event mouseenter qui lui fait prendre le focus.
    C'est pas super propre mais au moins ca fonctionnera dans ton cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le click sur button ne se déclenche pas
    Par chris81 dans le forum jQuery
    Réponses: 4
    Dernier message: 23/12/2014, 09h17
  2. Event qui ne se déclenche pas et IsEnabled selon contenu Textbox
    Par Takumi dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 20/01/2010, 10h24
  3. Click Event ne se déclenche pas dans UserControl
    Par riric85 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 12/04/2008, 15h22
  4. Un JOB qui ne se déclenche pas
    Par blids dans le forum Oracle
    Réponses: 15
    Dernier message: 09/02/2005, 21h14
  5. [trigger] ... qui ne se déclenche pas
    Par bozo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/01/2004, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo