Cette partie d'une question que j'ai posée ici la semaine dernière. Il a répondu, sauf que maintenant je vais utiliser cette fonction à plusieurs reprises, et au lieu de répéter les fonctions multiples fois, je veux utiliser des arguments/paramètres, mais il y a des problèmes ....Javascript: Mon booléen ne reste pas vrai après qu'il a été déclaré vrai dans une fonction
html:
<button id="button1">a</button>
<button id="button2">b</button>
javascript:
var funcAPressed = false;
var funcA = function(x, y) {
alert(x);
y = true;
alert(y);
};
var funcB = function(x, y) {
if (funcAPressed === false){
alert(x);
}
else{
alert(y);
}
};
var buttonA = document.getElementById('button1');
buttonA.addEventListener('click', function(){funcA("Button A has been pressed", funcAPressed);});
var buttonB = document.getElementById('button2');
buttonB.addEventListener('click', function(){funcB("press Button A", "Button B has been pressed");});
Voilà comment tout cela est mis en place: Je veux que l'utilisateur d'appuyer sur les boutons dans l'ordre correct, A puis B. si B est pressé d'abord, il y a un message d'alerte. La réponse que j'ai donnée à ma question précédente ici était de créer un booléen et de le définir sur false, ce que j'ai fait en haut. Quand je clique sur le bouton, j'obtiens le message d'alerte ci-dessous, et il semble que funcAPressed devient vrai depuis que j'ai fait l'alerte (y) qui alerte "true".
Le problème est que lorsque je clique sur le bouton B après avoir cliqué sur le bouton A, il voit toujours funcAPressed = false au lieu que ce soit vrai. Le funcB fonctionnera bien si au lieu de y = true j'ai funcAPressed = true ... mais en faisant cela, je vais devoir copier cette fonction plusieurs fois dans mon document au lieu de pouvoir l'utiliser une seule fois et assigner des paramètres.
vous pensiez que funcAPressed a été passé par référence, et lorsque vous définissez y true, vous suppose que funcAPressed a été définie sur true droite? Lisez cette réponse: http://stackoverflow.com/a/13104500/916000 –