Action de touche pour afficher un élément

Résolu/Fermé
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 - Modifié le 24 oct. 2018 à 15:41
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 - 25 oct. 2018 à 15:07
Bonjour j'ai un fichier Javascript où dedans il y a
function lol() {
var Style = document.createElement('style');
var texte_Style = document.createTextNode('#NouveauID { color: blue; } body { font-family: sans-serif; } P#NouveauID { background-color: black; }');
Style.appendChild(texte_Style);
var body_Style = document.querySelector('.Style');
document.body.insertBefore(Style, body_Style);
var NouveauID_01 = document.createElement('p');
NouveauID_01.id = 'NouveauID';
var texte_NouveauID_01 = document.createTextNode('Bonjour');
NouveauID_01.appendChild(texte_NouveauID_01);
var idde01 = document.querySelector('.NouveauID_01');
document.body.insertBefore(NouveauID_01, idde01);
var NouveauID_02 = document.createElement('p');
NouveauID_02.id = 'NouveauID';
var texte_NouveauID_02 = document.createTextNode('Bonjour2');
NouveauID_02.appendChild(texte_NouveauID_02);
var idde02 = document.querySelector('.NouveauID_02');
document.body.insertBefore(NouveauID_02, idde02);
}

onkeypress = function(e){
 if(e.charCode == 48){
  console.log("Message console");
  lol()
 }
}


Ce que je veux comme vous pouvez le voir ces quand on appui la touche 0, sa affiche la fonction lol(), mais ce que je veux savoir ces par exemple si on appui sur 0, sa affiche la fonction lol() et quand je re appui sur la touche alors que la fonction lol() et déjà afficher de supprimer la fonction. Merci de m'aider.

2 réponses

jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
24 oct. 2018 à 15:45
Bonjour,

Tu testes simplement si l'élément dont l' id : NouveauID existe déjà ou non...
Si il existe... tu le supprime.

NB: Un "id" doit être UNIQUE. dans ton code tu as utilisé deux fois le même id ... attention.
0
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 9
24 oct. 2018 à 18:30
Je sais que ses comme sa qu'on fait si il existe deja on le supprime mais je sais pas comment on fait en js et les 2 id qui sont parreille ces normale
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
Modifié le 25 oct. 2018 à 14:07

les 2 id qui sont parreille ces normale

Heu... non.
C'est comme avoir deux voitures avec la même plaque d'immatriculation... deux personnes avec le même numéro de sécu .... ce n'est pas "normal".
Si tu as besoin de pouvoir "cibler" plusieurs éléments .. utilise les "class" au lieu des ID !

Pour ce qui est de vérifier si un élément existe... il suffit d' un IF
var monElm = document.getElementById("NouveauID");
if(monElm){
    alert("NouveauID Existe déjà !");
    monElm.remove();
}


EDIT : remove étant une méthode.. il ne faut pas oublier les parenthèses...
0
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 9
Modifié le 25 oct. 2018 à 12:37
Salut jordane45.
Moi sa ne marche pas ou alors j'ai mal fait les choses regarde


var Style = document.createElement('style');
var texte_Style = document.createTextNode('div#irevelb_div{ padding: 10px; border: 1px dashed; text-align: center; } .irevelb_absolute{ position: absolute; width: 350px; height: 350px; background-color: #000; border-color: red; opacity: 0.8; } #irevelb_abs1{ top: 10px; left: 10px; } .irevelb_Div_menu_Text_p{ color: white; text-align: left; }');
Style.appendChild(texte_Style);
var body_Style = document.querySelector('.Style');
document.body.insertBefore(Style, body_Style);

var Div_Menu = document.createElement('div');
Div_Menu.id = 'irevelb_abs1';
Div_Menu.className = 'irevelb_absolute';
var Div_Menu__ = document.querySelector('.Div_Menu');
document.body.insertBefore(Div_Menu, Div_Menu__);

var P_1 = document.createElement('p');
var Text_P_1 = document.createTextNode('Salut');
P_1.className = 'irevelb_Div_menu_Text_p';
P_1.appendChild(Text_P_1);
Div_Menu.append(P_1);
Div_Menu = document.getElementById('irevelb_abs1');
}

onkeypress = function(e){
if(e.charCode == 48){
var Verif_Div = document.getElementById('irevelb_abs1');
if(Verif_Div){
Verif_Div.remove;
} else {
LaFonction();
}
}
}


Sa m'affiche bien la première fois vu quelle existe pas mais quand elle est afficher elle ne s'enlève pas.
Merci de m'aidez (Je demande juste sa et après je ne posterais plus de message dans le forum normalement)
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023
25 oct. 2018 à 14:04
Commence par poster ton code CORRECTEMENT !
ça fait déjà 5 fois que je te le demande..... je ne répondrai qu'après que tu nous ais mis le code en utilisant les balises de code ET y avoir précisé le langage afin d'avoir la coloration syntaxique.
Je te redonne encore une fois le lien pour les explications :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
25 oct. 2018 à 14:08
bon.. je vais quand même te donner une piste
onkeypress = function(e){
  if(e.charCode == 48){
    var Verif_Div = document.getElementById('irevelb_abs1');
    if(Verif_Div){
      alert('La div existe...');
      Verif_Div.remove(); 
    } else {
      LaFonction();
    }
  }
}
0
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 9
25 oct. 2018 à 14:10
De 1 mon code est mit correctement
De 2 si ta t'énerve de me répondre part
De 3 je te remais bien le code

onkeypress = function(e){
if(e.charCode == 48){
var Verif_Div = document.getElementById('irevelb_abs1');
if(Verif_Div){
Verif_Div.remove;
} else {
LaFonction();
}
}
}


Je tes mit juste le truck pour enlever et afficher
De 4 crie pas
Et comme je t'ai dit si tu pete les plomb part je t'oblige pas a resté pour me répondre
De 5 tu me la jamais demander 5 fois tu la inventer merci
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
25 oct. 2018 à 14:33
De 1 Ton code n'était pas mis correctement.... regarde donc la COLORATION SYNTAXIQUE
Tu pourrais aussi mettre un peu d’indentation histoire de rendre ton code plus lisible.... mais bon.

2 - Ca ne m'énerve pas de te répondre.... ça m'agace juste que les gens (comme toi...) demandent de l'aide sans faire le moindre effort en retour ( effort de suivre et d'appliquer les consignes qui leur sont données par les membres du forum... et plus particulièrement les modérateurs ! )

3 - Ben voila.. ce n'est pas si compliqué... manque juste l'indentation... mais on fera avec.

4 - A quel moment ai-je crié ?
Tu veux parler du mot "correctement" écrit en majuscule ? .. désolé. la prochaine fois je l'écrierai en souligné:gras.. c'est juste pour que puisse se voir vu que les précédentes fois tu semblais être passé à côté.

5 - je t'ai donné une réponse ... tu ne semble pas l'avoir vu...

6 - Je t'invite à faire un petit tour sur la charte du forum avant de poursuivre sur des réponses comme tu le fais....
0
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 9
25 oct. 2018 à 15:07
Bonjour Jordane45.

Merci d'avoir prit le temps de me supporter et de m'avoir m'aidez. J'ai enfin trouvé ce qu'il ne marche pas. Bonne journée.

Le code qui marche :

onkeypress = function(e){
 if(e.charCode == 48){
	 var Verif = document.getElementById('irevelb_abs1');
	 if (Verif == null){
		 LaFonction()
	 } else {
		 var parent = document.body;
		 parent.removeChild(Verif);
	 }
 }
}
0