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

JavaScript Discussion :

Ajout dynamique onclick et auto-execution


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut Ajout dynamique onclick et auto-execution
    Bonjour,
    Apres avoir parcouru le forum à la recherche d'une réponse à mon problème
    Je me permet de poster ma question ici :

    Je souhaite ajouter dynamique à des <img ../> un evenement onclick. Pour cela, j'ai essayé les différentes méthodes qui suivent :

    img.onclick = nom_fonction(param1,param2)
    ==> la fonction s'execute sans atteindre le click sur l'imag
    img.onclick = fonction(){nom_fonction(param1,param2)}
    ==> la console javascript n'accepte pas cette syntaxe
    img.addAttribute('onclick','nom_fonction('+param1+','+param2+')')
    ==> fonction uniquement sur firefox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (del.addEventListener){ //firefox
      		del.addEventListener('click',deleteGalerie(idLog,idPhoto), false);
    	} 
    	else if (del.attachEvent) { //IE
      		del.attachEvent('onclick', deleteGalerie(idLog,idPhoto));
    	}
    ==> la fonction s'execute automatiquement sur les deux navigateurs

    Finalement aucune des différentes methodes ne fonctionnent

    Voici le code des fonctions concernées :

    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
    function deleteGalerie(idLog,idPhoto){
    	var req = new Ajax.Request("/ajax.php?action=deleteGalerie&idLog="+idLog+"&idPhoto="+idPhoto,{
      					method: 'get',
    					onSuccess: function(transport) {
    						document.getElementById("thumbnails_galerie").innerHTML="";
    						afficheGalerie(idLog);
    					}
    	});
     
    }
     
    function addImage(idLog,idPhoto,desc){
    	var del = document.createElement("img");
    	var photo = document.createElement("img");
    	var divP = document.createElement("div");
    	del.src = "/img/del.png";
    	del.className="g_del";
    	divP.className="g_div";
    	del.style.cursor="pointer"
    	source = "/upload.php?action=affiche&objet=logiciel-galerie&id="+idLog+"&idPhoto="+idPhoto;
    	photo.src = source+'&'+new Date()*Math.random();
    	photo.id = idLog+'_'+idPhoto;
    	if (del.addEventListener){ //firefox
      		del.addEventListener('click',deleteGalerie(idLog,idPhoto), false);
    	} 
    	else if (del.attachEvent) { //IE
      		del.attachEvent('onclick', deleteGalerie(idLog,idPhoto));
    	}
    	divP.appendChild(photo);
    	divP.appendChild(del);
    	document.getElementById("thumbnails_galerie").appendChild(divP);
    	//del.onclick = function(){deleteGalerie(idLog,idPhoto)}
    	new Tip(idLog+'_'+idPhoto, desc,{
    			className: 'darktip'
    			}
    	);
    }
    Si quelqun a une idée d'où peut venir ce probleme, je suis preneur
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img.onclick = fonction(param1,param2){nom_fonction(param1,param2)}
    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
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    Merci d'essayer de m'aider.

    Pour la solution : je viens de tester, et cela produit aussi une erreur dans la console et empeche le fonctionnement des apps tels que Windows Prototype

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Bizare ...
    que se passe t-il lorsque tu clicks sur ton image sans rien implémenté comme méthode ? il y a déja une méthode ajouté par prototype ??

    ps : mon 200 eme post

  5. #5
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ne précise pas les arguments au niveau du onclick, mais récupères les dans la fonction avec arguments ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img.onclick = fonction(){nom_fonction()}
    et dasn la fonction:

    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 !

  6. #6
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    A le_chomeur :

    que se passe t-il lorsque tu clicks sur ton image sans rien implémenté comme méthode ?
    Il ne se passe rien du tout
    il y a déja une méthode ajouté par prototype ??
    C'est à dire ?

    A SpaceFrog

    ne précise pas les arguments au niveau du onclick, mais récupères les dans la fonction avec arguments ..
    J'ai tenté cette methode, mais, mais les arguments que je recupere sont undefined. De plus, il me semble que l'execution automatique a toujours lieu après queque tests.

    J'ai egalement testé ceci :

    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
     
    function deleteGalerie(){
    idLog = arguments[0]
    idPhoto = arguments[1]
    alert(idLog+"+"+idPhoto)
     
    [...]
    }
     
     
    function addImage(idLog,idPhoto,desc){
    	[...]
     
    	if (del.addEventListener){ //firefox
      		del.addEventListener('click',deleteGalerie(idLog,idPhoto), false);
    	} 
    	else if (del.attachEvent) { //IE
      		del.attachEvent('onclick', deleteGalerie(idLog,idPhoto));
    	}
     
    	[...]
     
    }
    Cela fonctionne, mais de meme que pour les autre cas, la fonction deleteGalerie s'execute immédiatement.

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

Discussions similaires

  1. Ajout d'une ligne de 2 liste deroulantes dynamique onclick
    Par italiano1360 dans le forum Zend Framework
    Réponses: 1
    Dernier message: 16/07/2012, 13h56
  2. Ajouter dynamiquement une icone a un executable.
    Par codeurduzero dans le forum C
    Réponses: 2
    Dernier message: 28/08/2011, 01h00
  3. l'ajout dynamique de Label (à l'execution)
    Par diabohits dans le forum Interfaces Graphiques en Java
    Réponses: 11
    Dernier message: 09/03/2010, 11h08
  4. Réponses: 2
    Dernier message: 24/01/2008, 10h44
  5. Réponses: 12
    Dernier message: 05/05/2006, 09h29

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