Bonjour à tous!
Je suis en train de coder une fonction qui doit me permettre de sélectionner plusieurs div HTML tant que l'utilisateur presse la souris et glisse (hover) les divisions (un peu comme dans Google Calendar).
J'ai donc écrit cette fonction :
async clickAndGliss(start,user) {
let indexDay = this.dates.indexOf(start);
if (indexDay >= 0 && indexDay <= 6) {
var rows = $('tr[id="first-week"] td.day div[id="' + user.id + '"]');
var mousedown;
rows.mousedown(()=>{
mousedown = true;
console.log(mousedown)
}).mouseup(()=>{
mousedown = false;
})
if (mousedown) {
rows.hover((row)=>{
},
(row)=>{
if (row.target.className == "alert alert-success") {
row.currentTarget.style.backgroundColor = "#9EC3A7"
}
if (row.target.className == "alert alert-success alert-danger") {
row.currentTarget.style.backgroundColor = "#D6A9AD"
}
if (row.target.className == "alert alert-success alert-info") {
row.currentTarget.style.backgroundColor = "#5F8DBE"
}
})
}
}
}
Cependant lorsque je fais :
if (mousedown) {
console.log("test")
//output rien
}
// par contre
if (!mousedown) {
console.log("test")
//output test
}
Je pense que mon problème est dû à l'exécution asynchrone par défaut de Node et je connais le système de Promise - await, mais je vois pas comment le mettre en place dans cet exemple...
Si quelqu'un à une idée pour me sortir de là ça serait vraiment top !
Merci d'avance pour vos réponses! :)
Bonne journée à vous