Changer le contenu d'un OnMouseUp

Résolu
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 - 17 juil. 2007 à 10:18
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 - 17 juil. 2007 à 10:51
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

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
17 juil. 2007 à 10:23
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]
1
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
17 juil. 2007 à 10:32
Ma ligne qui appelle la fonction si ca peut aider:
1
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
17 juil. 2007 à 10:47
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  
1
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
17 juil. 2007 à 10:51
J'ai supprimé l'import de la variable et l'écriture de celle ci, en gardant que la global
et ca marche :D

Merci
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
17 juil. 2007 à 10:28
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?
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
17 juil. 2007 à 10:39
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]
0
Rejoignez-nous