[JS DOM] attachEvent probleem

Pagina: 1
Acties:

  • defl8te
  • Registratie: Augustus 2001
  • Laatst online: 09-09-2024

defl8te

weetikkût

Topicstarter
Ik heb een probleem met een script...,

Zodra ik aan een object een attachEvent hang (we denken nu even alleen aan IE) wordt dit script ook uitgevoerd, terwijl ik dat (natuurlijk) pas wil zodra als het event getriggered wordt...

kan iemand me bijstaan?
PHP:
1
2
3
4
5
6
7
8
9
10
(while loopje ed)
obj_inner_img = document.createElement('img');
obj_inner_img.setAttribute('src','/image/' + artikels[i]['img']);
obj_inner_img.setAttribute('height','82');
obj_inner_img.setAttribute('id','img_' + i);

obj_inner_href = document.createElement('a');
obj_inner_href.setAttribute('href','#');
obj_inner_href.attachEvent('onMouseOver',showArt(parseInt(i)));
obj_inner_href.attachEvent('onMouseOut',hideArt(i));

(dit is dus javascript, maar het leest iets makkelijker met opmaak ;))

Zodra als dus obj_inner_href.attachEvent('onMouseOver',showArt(parseInt(i))); (regel 9) aangeroepen wordt, wordt ook showArt getriggered (met in dit geval als param 1)

help! 8)7 maar ik zal vast wel iets over het hoofd zien :Y)

Chriet Titulaer is de man


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Ehh.. je voert de functie nu toch ook letterlijk uit?

Misschien bedoel je zoiets:

code:
1
obj_inner_href.attachEvent('onMouseOver','showArt(parseInt(i))');


Handiger is echter direct een functie aan het koppelen:

obj_inner_href.onmouseover = functienaam;

en dan met de this pointer werken in je functies.

  • defl8te
  • Registratie: Augustus 2001
  • Laatst online: 09-09-2024

defl8te

weetikkût

Topicstarter
code:
1
obj_inner_href.attachEvent('onMouseOver','showArt(parseInt(i))');
nee, dat mag niet, die 2e variabele bij een attachEvent moet een functie zijn, niet een string (vraag me ook niet waarom ;))
obj_inner_href.onmouseover = functienaam;
ff proberen...

Chriet Titulaer is de man


  • defl8te
  • Registratie: Augustus 2001
  • Laatst online: 09-09-2024

defl8te

weetikkût

Topicstarter
jou oplossing is ook geen oplossing ;) ik heb wel de goeie oplossing gevonden:
Need to attach an event to a DHTML Object, that fires a method with arguments?. The key to doing this is to return a function once the event method has fired..

eg;

test = function(argument1) {
return function() { alert(arguement1) }
}

obj.attachEvent("onclick",test(myargs),true);
lees verder: http://macrofun.pvpers.com/archives/000042.html

Chriet Titulaer is de man


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Aha :) Gebruik zelf eigenlijk nooit attachEvent.. heb nooit arguments nodig voor events, maar bepaal alles a.d.h.v. het object waar het event op getriggered wordt.

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

de ingebouwde attachEvent eet alleen function pointers dacht ik. Dat is wat die functie die je post ook gewoon doet; namelijk een function returnen. Je kan ook meteen een function in de attachEvent bouwen:

JavaScript:
1
2
3
obj.attachEvent('ondinges', function(){
   doeWatAnders('met argument');
}, true);


Ik ben zelf ook voorstander van obj.ondinges = pointer; hoewel ik daar weer wel mn eigen attachEvent() omheen gebouwd heb ;)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin

Pagina: 1