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 :

[DOM] niveau expert...


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [DOM] niveau expert...
    Salut,

    Je veux changer la valeur de l'index de la fonction appelée sur le click sur une image dont le id est currentCadre. Pource faire j'utilise l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.document.getElementById(currentCadre).attributes["onclick"].value = "return cmdArt_onclick(" + i + ")"
    Malheureusement, alors que ça marche très bien sous firefox, ça ne marche pas sous I.E.

    J'ai plus l'habitude que ce soit le contraire...

    Aurriez-vous une idée ?

    D'avance merci,

    Laurent Jordi

  2. #2
    Membre confirmé

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Par défaut
    Humm onclick est un evenement il n'est par conséquent pas gérer comme un attribut "normal" il faut utiliser les fonctions telles que getEvent() ou autres...

  3. #3
    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
    il est vrai que IE et FFx n'acceptent pas la même syntaxe ... et mêem si la tienne est très originale ... ce n'est pas de cette façon que l'on gère les onclick...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    obj.onclik=function(){blablablabla}
    obj.setAttribute('onclick',function(){blablablabal})
    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 !

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut Merci
    Salut,

    Merci beaucoup. J'avais trouvé cette syntaxe mais, comme on n'utilise pas une chaîne, je ne peut concaténer la valeur d'un paramètre que je dois absolument passer.

    J'ai trouvé une solution de contournement mais j'aimerais bien savoir comment je peux passer une constante à la fonction, à moins de générer une fonction par cadre à traiter. Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    obj.onclik=function(){monCadre_onclick(1)}
    D'avance merci.

    Laurent

  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
    tu peux détailler un peu plus ton probème de passage de paramètre ?
    je ne vois pas ce qui te gène ...
    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
    CUCARACHA
    Invité(e)
    Par défaut Oui
    je construit dynamiquement des divs. chacun d'entre eux comporte un petit bouton, en haut à gauche, qui permet d'accéder à un menu contextuel.

    Lorsque l'on clique sur ce bouton, j'appelle une fonction monbouton_onclick(indexDuCadre).

    Jusque là tout va bien.

    Le problème apparaissait lorsque je devait supprimer un div. Du coup il me fallait renuméroter les divs pour la création d'un nouveau se fasse toujours à la fin et que les numéros se suivent sans trou.

    J'ai donc développé un module qui renumérote correctement les cadres. C'est dans ce module que je devais corriger l'index passé au bouton pour qu'il corresponde bien au bon cadre...

    Je sais que je pourrais utiliser max+1 mais je voulais faire une fonction propre. Maintenant,, bien que le problème soit réglé, je veux résoudre la problématique pour ma culture personnelle.

    @+

    Laurent Jordi

  7. #7
    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
    c'est ce que je pensais ..
    j'ai rencontré ce problème ...
    attribution d'un onclick dans le quel tu dois passer un paramètre avec des objets crées dynamiquement ...

    la solution se trouve dans l'attribution du paramètre directement à l'objet au moment de sa création ...
    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
     
    <script type='text/javascript'>
    function foo(){
    for (i=0;i<10;i++){
           var MonDiv=document.createElement('DIV');
           MonDiv.innerHTML="div " +i;
           MonDiv.Indice="ici c'est le "+i
           MonDiv.onclick=function(){alert(this.Indice)}
           MonDiv.setAttribute("onclick",function(){alert(this.Indice)})
           document.body.appendChild(MonDiv);
           }
       }
    </script>
     
     
    </head>
     
    <body onload="foo()">
    </body>
    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 !

  8. #8
    CUCARACHA
    Invité(e)
    Par défaut je vois...
    si je comprend bien ton code, le this est la source du click ?

    Ma solution de contournement est plus simple, dans IE seulement, je reconstitue la chaîne outer HTML complète du bloc et je le remplace.

    monCadre.childNode[0].outerHTML = monNouveauOuterHTML

    ça marche parfaitement. Evidemment, comme sous FF le outerHTML n'existe pas j'ai du faire deux codes distincts mais c'est acceptable compte tenu de l'importance de cette fonctionnalité.

    Bien à toi

    Laurent

  9. #9
    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
    Oui le this est le div et ayant ajouté un objet au div (Indice)

    Le click prend l'indice du div clické ...
    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 !

  10. #10
    CUCARACHA
    Invité(e)
    Par défaut OK
    Bon je met le résolu, je pense que nous avons fait le tour...

    Merci pour ton aide

    Laurent Jordi

  11. #11
    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
    il me parait assez contradictoire de mettre en objet DOM niveau expert et de conclure avec un outerHMTL
    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 !

  12. #12
    CUCARACHA
    Invité(e)
    Par défaut okok
    Ok ok mais je ne peux pas passer 15heures pour une toute petite fonction de mon back office, sinon mon appli ne sera pas terminée avant 15 ans...

Discussions similaires

  1. [Télétravail] Développeur web niveau expert sous Joomla
    Par faculd dans le forum Demandes
    Réponses: 0
    Dernier message: 28/01/2010, 13h56
  2. Réponses: 3
    Dernier message: 01/09/2009, 09h05

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