Changer le contenu d'un OnMouseUp [Résolu]

Signaler
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
-
Nargzul
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
-
Bonjour!

Je dois faire un boutton, qui une fois enfoncé, incrémente une valeur en permanence et dès qu'on le relache, arrête de l'incrémenter.

J'ai donc pensé à déclencher un "timer" qui est lancé par le onMouseDown et arrêté par le onMouseUp.

Oui mais voilà, une fois lancé, il faut une référence pour que clearintervall arrive à l'arrêter. Donc je me dis, tiens, les références, c'est des chiffres tout con, j'ai qu'a modifier la propriété de mon image et ca sera bon.

Voilà donc le bout de code concerné:

function startIncrement(divname,idbutton){
    increment = window.setInterval(function(){inc(divname);}, 250);   
    document.getElementById(idbutton).onMouseUp="stopIncrement("+increment+")";
   
}

Mais voilà, j'ai fais des alert et tout pour controler qu'on passe dedans, la fonction inc se lance bel et bien tous les 250ms, mais mon onMouseUp est toujours le même.

J'ai controlé que le idbutton soit bien celui de mon bouton avec des alert(il s'appelle "x+").

Du coté firebug, j'ai pas d'erreurs.

Merci de votre aide!

6 réponses

Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
Salut, il faudrait plutôt faire :
document.getElementById(idbutton).onMouseUp = function (){
    stopIncrement(increment);
}

donc:
function startIncrement(divname,idbutton){
    increment = window.setInterval(function(){inc(divname);}, 250);   
    document.getElementById(idbutton).onMouseUp = function (){
            stopIncrement(increment);
        }
}

à condition que increment soit une variable globale bien entendu

[o-_-o]
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
Ma ligne qui appelle la fonction si ca peut aider:
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
Re, non j'ai bel et bien controlé, c'est avec majuscules, comme onClick, onMouseDown, même dreamweaver me le dit ^^

J'ai rendu ma variable globale, mais si je vais voir mon code après pression sur ledit bouton, rien n'a changé :S  
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
J'ai supprimé l'import de la variable et l'écriture de celle ci, en gardant que la global
et ca marche :D

Merci
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3
Merci de ta réponse!

C'est quoi le mot clef pour les variables globale? Parce qu'avec ton code, ca marche pas mieux

J'ai essayé de faire un alert du onMouseUp aveant le increment =.... :

alert(document.getElementById(idbutton).onMouseUp);

et ca me sort un undefined??

Ya déjà un problème la non?
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
Et bien la variable increment
doit être définie en dehors de toute les méthodes :
var increment;
de plus onMouseUp n'existe pas, il me semble que c'est onmouseup ( sans les majuscules ....)
[o-_-o]