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] fonctions du DOM javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut [DOM] fonctions du DOM javascript
    bonjour,

    j'ai le code suivant avec deux fonctions javascript :

    la première créé avec DOM un petit formulaire, avec un bouton qui doit le faire disparaitre lorsqu'on clique dessus (action de la deuxième 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function create_insert_img(section,set,div_insert_img,div_parent_insert_img,num,num_book)
     {
       var form_insert_img = document.createElement('form');
       var fieldset_insert_img = document.createElement('fieldset');
       var input_insert_img = document.createElement('input');
       var input_submit = document.createElement('input');
       var input_close = document.createElement('input');
       var div_insert_img = document.getElementById(div_insert_img);
       var div_parent_insert_img = document.getElementById(div_parent_insert_img);
     
       form_insert_img.setAttribute("enctype","multipart/form-data");
    	 form_insert_img.setAttribute("encoding","multipart/form-data");
       var params = "?go="+section+"&"+set+"&"+num+"="+num_book;
       form_insert_img.setAttribute("action",params);
       form_insert_img.setAttribute("method","post");
     
       input_insert_img.setAttribute("type","file");
       input_insert_img.setAttribute("name","userfile");
       input_insert_img.setAttribute("enctype","multipart/form-data");
       input_insert_img.setAttribute("encoding","multipart/form-data");
       input_submit.setAttribute("id","x");
       input_submit.setAttribute("type","submit");
       input_submit.setAttribute("value","Envoyer");
     
       input_close.setAttribute("id","x");
       input_close.setAttribute("type","button");
       input_close.setAttribute("value","Fermer");
       input_close.setAttribute("onclick","close_insert_img(div_parent_insert_img)");
       input_close.onclick = close_insert_img(div_parent_insert_img); // pour Internet Explorer
     
       fieldset_insert_img.appendChild(input_insert_img);
       fieldset_insert_img.appendChild(input_submit);
       fieldset_insert_img.appendChild(input_close);
       form_insert_img.appendChild(fieldset_insert_img);
       div_insert_img.appendChild(form_insert_img);
     }
     
     
    function close_insert_img(div_parent_insert_img)
    {
      var div_parent_insert_img = document.getElementById(div_parent_insert_img);
      var elt = div_parent_insert_img.firstChild;
      elt.parentNode.removeChild(elt);
    }
    voici ce que dit le firebug, visiblement mes div dynamiques sont bien crées ; dans cet exemple mon div correspondant à la quatrième ligne du tableau est bien créé (div_parent_insert_img4) mais il ne veut pas le reconnaitre ensuite ??

    close_insert_img(div#div_parent_insert_img4)functions.js (ligne 1674)
    create_insert_img("magazine", "set_img_mag=1", null, div#div_parent_insert_img4, "num_mg", "305")functions.js (ligne 1660)
    ondblclick(dblclick clientX=478, clientY=273)index.ph...7jQ%3D%3D (ligne 2)
    [Break on this error] elt.parentNode.removeChild(elt);

    merci de votre aide, je n'y arrive plus..et pourtant je suis sur que c'est simple, peut-être un problème de syntaxe dans ces deux lignes ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    input_close.setAttribute("onclick","close_insert_img(div_parent_insert_img)");
       input_close.onclick = close_insert_img(div_parent_insert_img); // pour Internet Explorer
    merci
    http://www.medianeo.net

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    et comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     input_close.onclick = function(){close_insert_img(div_parent_insert_img)};
    en plus tu peux te passer de setAttribute() dans la mesure où cette syntaxe est aussi valable avec Firefox.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 95
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Je ne vois pas très bien le pb mais :

    - si l'élément est détruit par sa propre fonction 'onclick', ça peut bugger : il est probable que l'événement en cours sur un noeud interdise d'y toucher tant que cet évènement n'est pas terminé...

    - pour être propre, il convient peut-être d'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tmp= elt.parentNode.removeChild(elt);

Discussions similaires

  1. [DOM] fonction javascript qui ne se lance pas
    Par line86 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/08/2008, 14h48
  2. [DOM] fonction validate()
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/05/2007, 10h02
  3. [DOM] fonction javascript dans html
    Par nopnop dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/04/2007, 09h53
  4. [DOM] Fonctions "imbriquées" et valeur de retour
    Par hush dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/04/2007, 16h16
  5. [DOM] Valeur d'une variable à la création d'un fonction en DOM
    Par nihaoma dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 31/10/2006, 10h25

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