Toon posts:

eventhandling probleem: functies worden direct uitgevoerd.

Pagina: 1
Acties:
  • 34 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik wil bij een object wisselen van event.
En ik gebruik de addEvent code van Dean Edwards (http://dean.edwards.name/my/events.js)

Dat wil zeggen:
De eerste keer dat ik op de link klik moet er 'action 1' worden geschreven. (actie 1 uitgevoerd)
De tweede keer dat ik op dezelfde link klik moet er 'action 2' worden geschreven. (actie 2 uitgevoerd)

Het leek mij dus te kunnen met het onderstaande script:
code:
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
40
41
42
43
44
45
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="js/events.js"></script>
<script type="text/javascript">
var tObject = '';
var text    = '';

actionOne = function(){
    text = document.createTextNode('action 1');
    tObject.appendChild(text);
    removeEvent(this,'mouseup',actionOne);
    addEvent(this,'mouseup',actionTwo);
    return;
}

actionTwo = function(){ 
    text = document.createTextNode('action 2'); 
    tObject.appendChild(text);  
    removeEvent(this,'mouseup',actionTwo);
    addEvent(this,'mouseup',actionOne);
    return;
}

initPage = function(){
    if(document.getElementById('textObject')){
        tObject = document.getElementById('textObject');
    }
    if(document.getElementById('linkObject1')){
        addEvent(document.getElementById('linkObject1'),'mouseup',actionOne);
    }
    return;
}
addEvent(window,'load',initPage);
</script>
<title>test</title>
</head>

<body>
<span id="textObject"></span><br />
<span id="linkObject1">klik hier</span>
<p>Eerste keer klikken, zou als resultaat moeten geven: "action 1!"<br />Tweede keer klikken, zou als resultaat moeten geven: "action 2!"</p>
</body>
</html>


Zowel in FireFox 1.x als Internet Explorer 6x werkt het niet:
zowel actie 1 als actie 2 worden direct uitgevoerd.

Weet iemand wellicht hoe ik dit op kan lossen?

Ik heb dan nog geprobeerd om setInterval te gebruiken: maar dan wordt het event al helemaal niet meer gekoppeld aan het object.

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Als je nou es ipv die addEvent() call gewoon zoiets gebruikt:
JavaScript:
1
object.mouseup = function() { ... }
Doet-ie het dan?

En ben je al een door die code heen gestapt met de javascript debugger (firefox extensie)?

[ Voor 24% gewijzigd door _Thanatos_ op 15-08-2006 11:26 ]

日本!🎌


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 18-01 18:46

XangadiX

trepanatie is zóó kinderachtig

als je nou eens dean edwards ging mailen, in plaats van de problemen van de goede man z'n code op ons bordje te leggen. Oftewel; third party support doen we hier niet aan.

Stoer; Marduq


Dit topic is gesloten.