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 :

Désabonnement d'un événement


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 34
    Points : 28
    Points
    28
    Par défaut Désabonnement d'un événement
    Bonsoir à tous,

    Je débute en Javascript et je suis face à un problème qui me scie l'esprit en deux: comment désabonner un événement? :/
    En fait je veux que des que la largeur de "element" est supérieure à 500px, l'événement qui lui est associé est désabonné. Je sais qu'il faut utiliser removeEventListener(); mais je dois probablement mal l'utiliser, j'ai fais des recherches mais je tombe sur des choses assez complexes c'est pourquoi je viens chercher votre aide. Merci beaucoup d'avance

    Voici le
    Code HTML : 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
    <!DOCTYPE html>
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
     
     
    <head>
     
    	<title>eclipse</title>
    	<meta charset="UTF-8"/>
     
    	<link href="style/style-exo5.css" type="text/css" rel="stylesheet" />
     
    	<script src="scripts/exo5.js"></script>
     
    </head>
     
    <!-- corps du document -->
    <body>
    	<h1>premiers événements : eclipse</h1>
     
    	<div id="doc">
    	  <div id="buttons">
    	    <button id="plus">+</button>
    	    <button id="moins">-</button>
    	  </div>
    	  <img id="sun" src="../images/soleil.jpg" alt="soleil" />
    	</div>
     
    </body>
     
    </html>

    Voici le
    Code javascript : 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
    var setUpListeners = function() {
    	var bouton_plus = document.getElementById("plus");
    	var bouton_moins = document.getElementById("moins");
    	var element = document.getElementById("sun");
     
    	bouton_plus.addEventListener("click", agrandir);
    	bouton_moins.addEventListener("click", retrecir);
     
    	if (element.width > 500) {
    	bouton_plus.removeEventListener("click", agrandir);
    }
    }
     
    window.addEventListener("load", setUpListeners);
     
     
     
    var agrandir = function() {
    	/* fonction qui sert à agrandir la largeur de element de 20px */
      var element = document.getElementById("sun");
      element.style.width = (element.width + 20).toString() + 'px';
     
     
    }
     
    var retrecir = function() {
    	/* fonction qui sert à rétrécir la largeur de element de 20 px*/
      var element = document.getElementById("sun");
      element.style.width = (element.width - 20).toString() + 'px';
    }

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Plusieurs petites erreurs avec style.width et comparaison d'un texte avec un nombre.

    Exemple :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    window.addEventListener('load', ev => {
        // le DOM est construit et la page web est visible
     
        // début code du test
     
        const
            bouton_plus = document.getElementById("plus"),
            bouton_moins = document.getElementById("moins"),
            element = document.getElementById("sun");
     
     
        const agrandir = function () {
     
            // debug, console, touche F12
            console.log('agrandir : ', element.offsetWidth);
     
            if (element.offsetWidth > 480) {
                alert(`Taille maximum 480 px`);
                // element.style.width = '480px';
                bouton_plus.removeEventListener("click", agrandir, false);
            } else {
                element.style.width = (element.offsetWidth + 20).toString() + 'px';
            }
     
            // debug, console, touche F12
            console.log('agrandir : ', element.offsetWidth);
        }
     
        const retrecir = function () {
     
            // debug, console, touche F12
            console.log('retrecir : ', element.offsetWidth);
     
            if (element.offsetWidth < 40) {
                alert(`Taille minimum 40 px`);
                element.style.width = '40px';
            } else {
                element.style.width = (element.offsetWidth - 20).toString() + 'px';
            }
     
            // debug, console, touche F12
            console.log('retrecir : ', element.offsetWidth);
        }
     
        bouton_plus.addEventListener("click", agrandir);
        bouton_moins.addEventListener("click", retrecir);
     
        // fin code du test
     
    }, {
        capture: false,
        passive: true,
        once: false
    });

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    Salut à toi Danielhagnoul,

    Merci énormément d'avoir pris le temps de me répondre et d'avoir fourni une réponse aussi complète
    Néanmoins je t'avoue être un grand débutant et ne pas comprendre grand chose, mais en m'inspirant de ta structure de code, j'ai réussi à résoudre le problème:
    (ce code permet bien de désabonner et ne génère pas d'erreur dans la console donc j'espère que c'est bon ^^).
    Un géant merci à toi pour ton aide ^.^

    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
     
     
    var setUpListeners = function() {
    	var bouton_plus = document.getElementById("plus");
    	var bouton_moins = document.getElementById("moins");
    	var element = document.getElementById("sun");
     
     
     
    	var agrandir = function() {
    	/* */
    	var element = document.getElementById("sun");
    	element.style.width = (element.width + 20).toString() + 'px';
    	if (element.width > 500) {
    			bouton_plus.removeEventListener("click", agrandir);
    		}
     
    	}
     
    	var retrecir = function() {
    	/* */
    		var element = document.getElementById("sun");
    		element.style.width = (element.width - 20).toString() + 'px';
    		if (element.width < 200) {
    			bouton_moins.removeEventListener("click", retrecir);
    		}
    	}
     
    	bouton_plus.addEventListener("click", agrandir);
    	bouton_moins.addEventListener("click", retrecir);
    }
     
    window.addEventListener("load", setUpListeners);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/04/2012, 22h10
  2. Comment désabonner un évènement?
    Par takinelinfo dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 11/07/2011, 22h03
  3. Se désabonner d'un évènement
    Par scapefrom dans le forum C#
    Réponses: 4
    Dernier message: 15/06/2010, 13h14
  4. Se désabonner d'un événement
    Par laedit dans le forum Framework .NET
    Réponses: 3
    Dernier message: 20/10/2009, 13h53
  5. désabonnement évènement SelectedIndexChanged
    Par UoLad dans le forum Windows Forms
    Réponses: 14
    Dernier message: 04/02/2009, 12h44

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