Bonjour à tous,
Je démarre en Javascript et comme j'ai lu et relu qu'il faut séparer les différents langages, je me suis mis en tête de créer un détecteur d'évènement (pour éviter les onclick="javascript:maFonction(...) et consorts".
Oui, il existe des bibliothèques mais avant d'en utiliser une, quelle qu'elle soit, j'aime savoir ce qu'elle fait, même basiquement. Et donc je viens solliciter votre aide (conseils, corrections, explications... critiques -constructives ;-) -)...
Mon problème est le suivant, je souhaite gérer en simultané deux évènements "mousedown" et "mousemove". Seulement, une fois que j'ai créé le "listener" pour le "mousemove", il reste actif et je n'arrive pas à la désactiver.
Et la question qui me taraude, à force d'essais infructueux, est de savoir si je ne fais pas une confusion entre le bouillonnement et ses conséquences et la suppression de "listener". Le code suit:
La syntaxe a des défauts et la fonction "reset()" est affreuse mais elle exprimer mon intention. Si quelqu'un a une solution avec l'explication qui va bien
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 function main() { var addEvent = listener; addEvent(document, 'mousedown', actif); } function listener(obj,evType,fn) { if(obj.addEventListener) { obj.addEventListener(evType,fn,false); } else if(obj.attachEvent) { obj.attachEvent("on"+evType,fn) ; } } function actif(e){ var el= e.target||event.srcElement; if(!el.tagName)el=el.parentNode; alert('vous avez cliqué sur un élément "'+el.tagName+'" dont l\'id est "'+el.id+'"') var addEvent2 = listener; addEvent2(el, 'mousemove', mover); reset(); } function mover(e){ alert('move'); } function reset() { document.detachEvent('mousemove', mover); document.removeEventListener('mousemove', mover, false); } main();
Merci par avance.
Partager