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 :

Erreur de selection avec Javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2020
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 28
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 13
    Par d�faut Erreur de selection avec Javascript
    Bonsoir � tous. Je me tourne vers vous pour un probl�me assez �trange que j'ai du mal � comprendre. je cr�e un petit jeu sur navigateur et dans mon code (� certains endroit du code) lorsque je s�lectionne un �l�ment par son id (�l�ment que j'ai cr�e) �a ne marche pas et lorsque j'affiche en console j'ai un beau "null" je ne vous dis pas combien j'en suis exasp�r� tellement j'ai pass� du temps dessus alors que le plus dure reste � g�rer.

    je met un extrait de code
    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
        function CreateEnnemies() {
            var ennemie = document.createElement('img');
            ennemie.src = 'images/ennemie.png';
            ennemie.id = 'ennemie';
            ennemie.style.width = '80px';
            ennemie.style.height = '40px';
            ennemie.style.position = 'absolute';
            ennemie.style.left = Math.round(Math.random() * 260) + 'px'; // Les ennemies apparaitrons aléatoirement sur l'espace de jeu
            // 265 représente la taille de l'écran moins la taille d'un ennemie. Ainsi ils n'apparaitrons pas en dehors de l'écran
            conteneur.appendChild(ennemie);
            // console.log(parseInt(getComputedStyle(conteneur).width));
        }
     
        ct2 = 0;
        setInterval(() => {
            CreateEnnemies();
     
            ct2++;
            if (ct2 == 1) {
                var deleteEnnemies = $('#ennemie');
                $.each(deleteEnnemies, function(index, elt) {
                    if (parseInt($(this).css('top')) == 600) {
                        $(this).remove();
                    }
                });
                ct2 = 0;
            }
        }, 2200);
     
     
        // Détection des collisions balles-ennemies
        var bal = document.querySelector('.container #ball');
     
        function collisionsBallesEnnemies() {
            var deleteEnnemies = $('#ennemie');
            console.log(deleteEnnemies);
     
            console.log(document.getElementById('#ball'));
     
        }
     
        collisionsBallesEnnemies()<br><br>
    Je cr�e un �lement (une image) avec un id�e ennemie. Mais ce que je ne comprends pas c'est que dans le setInterval j'arrive � s�lectionner l'�l�ment mais dans la fonction collisionsBallesEnnemies �a ne marche pas que ce soit avec du js native ou du jQuery.

    En esp�rant que je trouverais solution je solicite de l'aide. Cordialement

  2. #2
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Bonjour,

    Cette ligne
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    ennemie.id = 'ennemie';
    suppose que tu ne cr�es qu'un seul �l�ment "ennemi" (toutes les 2 secondes);
    Mais je ne comprends pas que tu le supprimes aussit�t...
    Quand tu appelles collisionsBallesEnnemies() (une seule fois au chargement...), l'�l�ment n'a pas encore �t� cr��.
    Evite aussi de d�finir 2 fois une variable deleteEnnemies dans un contexte diff�rent.

    Bref, deux ou trois probl�mes d'organisation;

  3. #3
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour et bienvenue sur DVP.

    Une ID doit �tre UNIQUE dans ta page, ce qui n'est pas le cas quand dans ta fonction de cr�ation tu �cris
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var ennemie = document.createElement('img');
    ennemie.src = 'images/ennemie.png';
    ennemie.id = 'ennemie';
    Tous les �l�ments cr�es auront la m�me ID. Tu peux dans ce cas passer par une classe commune.


    Un autre point � souligner est que lorsque l'on utilise jQuery ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    $.each(deleteEnnemies, function(index, elt) {
        if (parseInt($(this).css('top')) == 600) {
            $(this).remove();
    alors on l'utilise en plein, ou pas du tout, autant prendre de bonne habitude tout de suite.

  4. #4
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2020
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 28
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 13
    Par d�faut
    Bonsoir � tous. Merci pour les retours j'avais d�j� r�solu mon probl�me et oui effectivement je dois plut�t cr�� des �l�ments avec classe commune (il faut dire que la r�gle de l'id unique m'avais �chapp�). Dans tout les cas mon jeu avance tranquillou mis � part la d�tection des collisions qui m'en fait voir de toutes les couleurs (les �l�ments sont cr�� al�atoirement et le nombre est inconnu du coup difficile de g�rer les collisions pour chaque balle avec chaque ennemis)... Quoiqu'il en soit merci pour les retours �a fait plaisir

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2020
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 28
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 13
    Par d�faut
    Citation Envoy� par javatwister
    (...)
    Mais je ne comprends pas que tu le supprimes aussit�t...
    Alors pour r�pondre � ta question en fait c'est un jeu de vaisseau spatial que je cr�e et les vaisseaux ennemis circule vers le bas jusqu'� dispara�tre de l'�cran et je retire les vaisseaux ennemis qui sont sortis du cadre du jeu pour qu'il ne s'accumule pas en bas de l'�cran (au bout d'un moment �a fera beaucoup).

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur ouverture page avec javascript:window.open
    Par gagouk dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 04/04/2016, 15h09
  2. erreur javascript pour modifier select avec tableau PHP
    Par omdafer dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 24/03/2008, 12h27
  3. D�sactiver plusieurs SELECT avec javascript
    Par Agit� dans le forum G�n�ral JavaScript
    R�ponses: 12
    Dernier message: 12/10/2007, 17h00
  4. CSS par dessus des Select avec script javascript.
    Par Joe Le Mort dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 17/01/2007, 13h56
  5. R�ponses: 6
    Dernier message: 08/06/2004, 14h51

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