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 :

desactiver evenement click apres un clic


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut desactiver evenement click apres un clic
    Bonjour,
    j'ai une instruction ajax, qui a l'aide d'un evenement Click lance une fonction.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    $('.rate').click(function(){
    	$.ajax({
    		type: "GET",
    		url: "loco/rate-product.php",
    		dataType : 'json',
    		data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(),
    		cache: false,
    		async: false,
    		success: function(result) {
    			avg=result.avg;
    			sum=result.count;
    			$("#votes").html("Average:" + avg);
    			$(".vote_count").html(sum + " vote(s)");
    			$('.rate').rating('select',avg);
    			$('input',this.form).rating('readOnly',true);
    			//$('input',this.form).rating('disabled',true);
    			//$('input',this.form).rating('return',false);
     
    		},
    		error: function() {
    			alert("Error, please try again2");
    		}
    	});
    });
    J'ai un formulaire qui sert a faire une notation par étoile. Le but de cette manoeuvre est d'empecher les clics répétés.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    soit tu mets un flag dans le data du bouton et tu le teste pioru lancer ou non l'ajax
    soit tu bascule le style display à none

    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
    17
    18
    19
    20
    21
    22
    23
    24
    $('.rate').click(function(){
    	$.ajax({
    		type: "GET",
    		url: "loco/rate-product.php",
    		dataType : 'json',
    		data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(),
    		cache: false,
    		async: false,
    		success: function(result) {
    			avg=result.avg;
    			sum=result.count;
    			$("#votes").html("Average:" + avg);
    			$(".vote_count").html(sum + " vote(s)");
    			$('.rate').rating('select',avg);
    			$('input',this.form).rating('readOnly',true);
    			//$('input',this.form).rating('disabled',true);
    			//$('input',this.form).rating('return',false);
     
    		},
    		error: function() {
    			alert("Error, please try again2");
    		}
    	}).css({'display':'none'});
    });
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.rate').unbind('click');
    devrait suffire
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    on peut réaxctiver après un unbind?,

    vu que là il y a réessayer ... il rique d'avoir besoin du click plus tard non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    Merci les gars, ca marche, ça me désactive bien les clics et les votes refonctionnent bien apres rafraîchissement de la page.
    Merci encore

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tiens, j'avais pas pensé à la méthode one() qui correspond encore mieux à ce que tu souhaites, notamment si tu as plusieurs votes sur la même page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.rate').one('click', function(){...});
    qui permet de ne lancer l'événement qu'une seule fois pour chaque élément de classe rate.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    J'avais essayé mais le fait que mes boutons radio est le même nom mais pas la meme valeur, effectivement avec .one("click"... je ne pouvais plus re-cliquer sur la même valeur deux fois, mais je pouvais quand meme en selectionner une autre.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut ne fonctionne pas sous Internet explorer
    Je vous remercie encore pour vos reponses, mais sous internet explorer, j'ai l'erreur Error, please try again1 qui s'affiche .

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par thildouille
    j'ai l'erreur Error, please try again1 qui s'affiche .
    C'est bien, mais vu que ce message n'apparait nulle part dans le code que tu nous a montré, je vois mal comment on pourrait t'aider...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    $(document).ready(function() { 
     
    var variable = location.search;     
    var variable = location.search.substring(1,location.search.length); 
    var variable = variable.substring(3); 
     
     
     
    var some_product_id=variable; 
     
     
    getRating(some_product_id); 
     
    function getRating(id){ 
        $.ajax({ 
            type: "GET", 
            url: "loco/rate-product.php", 
            dataType : 'json', 
            processData: false, 
            data: "do=getRate&product_id=" + id, 
            cache: false, 
            async: false, 
            success: function(result) { 
                avg=result.avg; 
                sum=result.count; 
                $("#votes").html; 
                $(".vote_count").html(sum + " vote(s)"); 
                $('.rate').rating('select',avg); 
            }, 
            error: function() { 
                alert("Error, please try again1"); 
            } 
        }); 
    } 
     
    $('.rate').click(function(){ 
        $.ajax({ 
            type: "GET", 
            url: "loco/rate-product.php", 
            dataType : 'json', 
            data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(), 
            cache: false, 
            async: false, 
            success: function(result) { 
                avg=result.avg; 
                sum=result.count; 
                $("#votes").html("Average:" + avg); 
                $(".vote_count").html(sum + " vote(s)"); 
                $('.rate').rating('select',avg); 
                $('input',this.form).rating('readOnly',true); 
                $('.rate').unbind('click'); 
     
            }, 
            error: function() { 
                alert("Error, please try again2"); 
            } 
        }); 
    }); 
    });
    Voici mon php

    Code php : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    function getRate() {
    	$sql= "select ifnull(round(sum(rate)/count(*),0),0) avg, count(*) count from rate where product_id=" . $_GET['product_id'];
    	if($result=mysql_query($sql)) {
    		if($row=mysql_fetch_array($result)) {
    			$rate['avg'] = $row['avg'];
    			$rate['count'] = $row['count'];
    			echo json_encode($rate);
    		}
    	}
    }
     
     
    function rate() {
    	$ip = $_SERVER["REMOTE_ADDR"];
     
    	$product = $_GET['product_id'];
    	$valideip = "SELECT * FROM  rate WHERE ip = '$ip' AND product_id = '$product' ";
     
    	$sql = "insert into rate (product_id, rate, ip) values (" . $_GET['product_id'] . ", ".$_GET['rate'].",'$ip')";
     
    	if($result=mysql_query($sql)) {
    		getRate(); //call retrieve from getRate function
    	}
    }
     
     
     
    if(!empty($_GET['do'])) {
    	include 'config.php';
    	include 'opendb.php';  //open database connection
     
    	if($_GET['do']=='rate'){
    		// do rate
    		rate();
    	}
    	else if($_GET['do']=='getRate'){
    		// get rating
    		getRate();
    	}
    }

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var variable = location.search;     
    var variable = location.search.substring(1,location.search.length); 
    var variable = variable.substring(3);


    Tu déclares trois fois la même variable... chaque déclaration écrase la précédente.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    j'ai mis un
    et j'ai bien l'id qui s'affiche sous explorer.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    J'ai désactivé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //var variable = location.search;	
    //var variable = location.search.substring(1,location.search.length);
    //var variable = variable.substring(3);

    et mis par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var some_product_id=121;
    Mais j'ai toujours le message d'erreur.

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par thildouille
    Mais j'ai toujours le message d'erreur.
    Ben dis-toi que le script n'arrive pas à joindre la page PHP
    Tu es sûr de l'URL ?

    Ceci dit, c'est quand même une bonne chose pour toi, ça évitera de vilaines injections SQL
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql= "select ifnull(round(sum(rate)/count(*),0),0) avg, count(*) count from rate where product_id=" . $_GET['product_id'];
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "insert into rate (product_id, rate, ip) values (" . $_GET['product_id'] . ", ".$_GET['rate'].",'$ip')";
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    Mais ce qui est bizard c'est que ca fonctionne nickel sous firefox et safari etc...
    mais pas sous IE

  16. #16
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Et que te renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    error: function(jqXHR, textStatus, errorThrown) { 
        alert(textStatus+' - '+errorThrown); 
    }
    ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    Ca me retourne parsererror - undefined

    Qu'est ce que ça veut dire?

    [Edit]

    Comment je peux résoudre ce problème?
    Merci d'avance

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    Bonjour j'ai pu lire sur le net que suite a parsererror - undefined ça peut venir d'un problème d'encodage utf8. J'ai lu ça sur des site en anglais, mais comment forcer l'utf8. Vous en pensez quoi?

  19. #19
    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 : 75
    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
    Bonjour

    jQuery, jQuery UI et le web d'aujourd'hui travaillent en UTF-8.

    Tutoriel : Passez à l'UTF-8 sans manquer une étape par Josselin Willette

    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.)

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    Justement ma page est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Mais si ça passe sous firefox et safari, ça ne doit pas venir de ça.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA] Evenement Click Cellule
    Par kribot dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2005, 10h47
  2. besoin d aide evenement click droit
    Par yuvino dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/12/2004, 11h32
  3. [C#] Evenement click dans un Panel
    Par keyser-soze dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/05/2004, 23h21
  4. [C#] Gestion du click apres le Page_Load
    Par ludo0 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/05/2004, 18h01
  5. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 17h11

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