Avatar billede elskermad.dk Nybegynder
12. juli 2007 - 16:25 Der er 9 kommentarer og
1 løsning

bruge værdi i funktion tilføjet med attachevent

hej eksperter!

hvordan er det jeg anvender en værdi inde i den funktion man tildeler via attachevent...?

fx har jeg:
td2.addEventListener('mouseover',function(){document.getElementById('id_' + nummer[i]).style['display']='block'},false);

Problemet er at når eventet er tilføjet tror den er id'et der skal bruges hedder "'id_' + nummer[i]" i stedet for fx 'id_434' - altså den ønskede værdi i arrayet nummer bliver ikke indsat i funktionen... Det kan lade sig gøre? :)
Avatar billede roenving Novice
12. juli 2007 - 16:29 #1
Hvad så med at oprette værdien først:

var myId = 'id_' + nummer[i];
td2.addEventListener('mouseover',function(){document.getElementById(myId).style['display']='block'},false);
Avatar billede elskermad.dk Nybegynder
12. juli 2007 - 16:53 #2
så sker der ingenting, ikke engang en fejlmeddelelse
Avatar billede elskermad.dk Nybegynder
12. juli 2007 - 17:02 #3
det jeg har nu ser således ud:

for(i=0;i<mouses.length;i++) {
    if (document.getElementById('mouse_' + mouses[i]).addEventListener) {
        document.getElementById('mouse_' + mouses[i]).addEventListener('mouseover',function(){document.getElementById('mouse_' + mouses[i]).style['display']='block'},false);
    }
    else if (document.getElementById('mouse_' + mouses[i]).attachEvent) {
        document.getElementById('mouse_' + mouses[i]).attachEvent('onmouseover',function(){document.getElementById('mouse_' + mouses[i]).style['display']='block'});
    }
}

da det er dynamisk hvilke celler der skal have event på sig, er det nødt til at blive lagt i et array inden tilføjelsen (som også sker vha. et javascript-script)

hvis man debugger så går den rigtigt nok ind i elseif'en på IE (sat en alertboks som test) og event bliver også rigtig tilføjet - Fejlen opstår først når man fører musen over, så det må  være det inde i funktionen man tilføjer der er problemet
Avatar billede elskermad.dk Nybegynder
12. juli 2007 - 17:04 #4
hvis jeg sætter en debugalertboks ind i funktionen så bliver den vist korrekt inden den fejler:

document.getElementById('mouse_' + mouses[i]).attachEvent('onmouseover',function(){alert('x');document.getElementById('mouse_' + mouses[i]).style['display']='block'});
Avatar billede elskermad.dk Nybegynder
12. juli 2007 - 17:06 #5
man kan heller ikke bruge this.style[... inde i den funktion
Avatar billede olebole Juniormester
13. juli 2007 - 13:13 #6
<ole>

Problemet er, at i'et ændrer sig under itereringen - hvorfor funktionerne ikke kan finde det korrekte element, når de fyres af.
Du kan formodentlig gøre noget à la:

for(i=0;i<mouses.length;i++) {
    var o = document.getElementById('mouse_' + mouses[i]);
    if (o.addEventListener) {
        o.addEventListener('mouseover',function(){o.style.display='block'},false);
    }
... osv ... osv ...

- men det kommer lidt anpå, om du også har noget OOP kørende. Mere kode ville være velgørende, dersom du stadig får fejl ... eller ikke opnår det forventede  =)

/mvh
</bole>
Avatar billede elskermad.dk Nybegynder
15. oktober 2007 - 15:11 #7
af en eller anden grund fik jeg aldrig mail om oleboles løsning, så jeg droppede tanken og har ikke fået den testet...

lukker her
Avatar billede olebole Juniormester
15. oktober 2007 - 15:51 #8
Hehe ... sådan er det ofte med E's mail-system. Der er desværre også masser af kommentarer i tråde, jeg efter længere tid opdager ved et tilfælde - og som jeg ikke får tilbagemeldt på i tide  ;o)
Avatar billede elskermad.dk Nybegynder
15. oktober 2007 - 16:03 #9
det er hvert fald en af systemets mere vitale dele så underligt der så ofte er problemer med det!
Avatar billede olebole Juniormester
15. oktober 2007 - 16:22 #10
Jeg er fuldstændig enig! Jeg har informeret brugeren snowball, som også er Admin, om problemet adskillige gange, men han sidder ikke med de tekniske beslutninger. Det eneste, han kan gøre, er at rapportere videre til det firma, IDG har outsourced teknikken til - og de evner helt tydeligt ikke deres opgave ... desværre  :o|

Det er i dén grad invaliderende for et site af denne type og med dette koncept, når mail-systemet ikke fungerer. Problemet er, at det for IDG betyder væsentligt mere at have et site om IT, end det gør at have et fungerende site om IT.

Samtidig er det jo grænsende til det hysterisk komiske, at et site, som bl.a. omhandler programmering - og som dagligt servicerer et hav af programmører - fungerer så amatøragtigt, som tilfældet er!

Se f.eks. også 'vidensdatabasens' såkaldte artikel-editor:
    http://www.eksperten.dk/artedit.phtml

Prøv at skrive en artikel i dét interface - og lav smårettelser i det ... det er 'det udvidede, franske scroll-helvede'!
- og hvad i alverden er undskyldningen (andet end arrogance og ligegyldighed) for, det interface har set sådan ud i årevis ...?!??!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester