Variable inaccessible

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Quentin Régnier
Messages : 1
Enregistré le : 12 nov. 2021, 19:45

Variable inaccessible

Message par Quentin Régnier » 12 nov. 2021, 19:49

Bonjour à tous,

Voilà je rencontre un problème avec des variables et je ne sait comment le résoudre :

J'ai créer une fonction qui est appelé par un onclick d'un

Code : Tout sélectionner

<a></a>
Voici ma fonction :

Code : Tout sélectionner

function hide_edit_panel(id)
{
  if (document.getElementById('panel-edit').style.display == 'none')
  {
       document.getElementById('modif_edit').href = "?edit=" + id;
       document.getElementById('panel-edit').style.display = 'block';
       document.getElementById('html').style.overflowY = 'hidden';
       document.getElementById('html').style.overflowX = 'hidden';
       debugger
       var id_suprr_art = id;
       debugger
  }
}
Mon but dans cette fonction et de hors mi le reste de code sert à récupérer une var nommer id_suprr_art mais celle-ci lorsque qu'elle est définit est dite non définit lorsque je l'utilise dans un autre script externe à la fonction :

Code : Tout sélectionner

document.getElementById('suppr_edit').onclick = suppr_art(id_suprr_art);
Alors je me suis poser la question d'importer ce script directement dans la fonction mais malheureusement le script ci dessus s’exécute directement après que la fonction hide edit panel est appelé hors moi ce n'est ce que veux je voudrais qu'elle applique seulement un onclick comme on appliquerait un style en javascript :

Code : Tout sélectionner

document.getElementById('html').style.overflowX = 'hidden';
Et non s’exécute au simple appel de la fonction.

Donc deux solution s'offre à moi soit je met le script :

Code : Tout sélectionner

document.getElementById('suppr_edit').onclick = suppr_art(id_suprr_art);
ou j'utilise une var que je créer dans la fonction hide edit panel et ensuite je l'utilise à l’extérieure de la fonction mais je préfèrerait la mettre directement dans la fonction si elle ne s’exécute pas lors de l'appel de a fonction.


Si quelqu'un à la solution je suit intéresser, :D Merci d'avoir lu...

Avatar du membre
webmaster
Administrateur du site
Messages : 563
Enregistré le : 28 févr. 2017, 15:19

Re: Variable inaccessible

Message par webmaster » 13 nov. 2021, 09:10

Bonjour

La déclaration de variable est subtile en javascript
Ici, il faut définir une variable globale à la page en dehors de la fonction (avec var) et l'utiliser ensuite dans la fonction (sans le var)
Voici le code :

Code : Tout sélectionner

var id_suprr_art = 0;
function hide_edit_panel(id)
{
  if (document.getElementById('panel-edit').style.display == 'none')
  {
       document.getElementById('modif_edit').href = "?edit=" + id;
       document.getElementById('panel-edit').style.display = 'block';
       document.getElementById('html').style.overflowY = 'hidden';
       document.getElementById('html').style.overflowX = 'hidden';
       debugger
       id_suprr_art = id;
       debugger
  }
}
Je pense que cela fonctionnera
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre