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 fonctionne plus après avoir changé mon html


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Par défaut event click ne fonctionne plus après avoir changé mon html
    Bonjour,

    J'ai l’impression qu'il y a un truc que je n'arrive pas à saisir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function setPage(){
    	pagination  = '<div id="paginator">';
    	for(var j=1;j<=totalPage;j++){
    		pgFirst=(j==1)?"pgSelected":"";
    		pagination += '<button class="'+pgFirst+'" onclick="displayProducts((('+ j * nbrElemPerPage +') - '+ nbrElemPerPage +'),'+ nbrElemPerPage +','+ filterEnable +')">'+j+'</button>';
    	}
    	pagination += "</div>";
     
    	$('#paginaProd').html("")
    	$('#paginaProd').html(pagination);
    }
    et un peu plus loin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(document).ready(function() {
    	$('#paginator').on("click", "button", function(e){
    		if(oldeV!="")$(oldeV).removeClass('pgSelected');
    		$(e.target).addClass('pgSelected');
    		oldeV = e.target;
    		$('html, body').animate({ scrollTop: 0 }, 'fast');
    	});
    });
    Lors du chargement de la page l’évent fonctionne comme il faut. Mais dès que j’exécute la fonction setPage(), l'affichage de mes produits et du nombre de page et correctement modifié mais l’évent click ne fonctionne plus. J'ai recherché sur internet et ils disent qu'au lieu d'utiliser .click() il faudrait utiliser .on(), qui est une délégation du parent de(s) élément(s) concerné donc peu importe ce que je change dans mon html, les nouveau selectors seront correctement ajouté. Ce que j'ai visiblement fait ci dessus et encore une fois au chargement de ma page tout fonctionne nickel, mais après avoir changé mes boutons de page... rebelote, mon event click ne fonctionne plus.

    Si quelqu'un a une idée sur l'erreur que j'ai pu faire ou ou qu'il m'explique pourquoi cela ne marche pas comme il faudrait, ça serait vraiment sympa.

    Cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function setPage(){
    	pagination  = '<div id="paginator">';
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$('#paginator').on("click", "button", function(e){
    ...
    A partir du moment où tu recrées l'id "#paginator", il "disparait" du DOM, et un NOUVEL élément "#paginator" apparait, mais sans les évènements associés au 1er.
    En clair, $('#paginator') ne sais plus à quoi se référer...

    Il faut donc "accrocher" l'évèenement à un élement "fixe" du DOM (comme "body" *), et déléguer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$("body").on("click", "#paginator button", function(e){
    ...
    * Le mieux étant l'élément "parent" fixe le plus proche.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Par défaut
    Je savais bien que c'était un tout petit truc qui me bousillais ma journée. Ça tombe tellement sous le sens après que quelqu'un te le fait remarquer.

    Merci pour ton aide jreaux62.

    Cordialement.

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

Discussions similaires

  1. [UI] Resizable ne fonctionne plus après un event Stop
    Par sensol dans le forum jQuery
    Réponses: 4
    Dernier message: 29/12/2016, 16h13
  2. Réponses: 6
    Dernier message: 22/01/2008, 21h06
  3. Requête ne fonctionne plus après avoir 'vider' les champs ?
    Par chapeau_melon dans le forum WinDev
    Réponses: 9
    Dernier message: 14/10/2007, 11h03
  4. Mon programme ne fonctionne plus après mise à jour de linux
    Par dybmans dans le forum GTK+ avec C & C++
    Réponses: 22
    Dernier message: 06/05/2007, 18h08
  5. function qui ne fonctionne plus après fractionnement Base
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 25/05/2006, 20h37

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