Avatar billede chrha22 Nybegynder
29. juli 2004 - 09:27 Der er 10 kommentarer og
1 løsning

capture onclick el. mousedown på document.createElement("div")

Jeg kan ikke få følgende kode til at capture nogle events. Nogle forslag?

function fnInsertText(oTxtId,oTxtFont) {
    var oNode=document.createElement("div");
    card.insertBefore(oNode);
    oNode.style.fontFamily=oTxtFont;
    oNode.innerText='Skriv tekst her';
    giLastTxt++;
    var iTempCount = "Text" + giLastTxt;
    oNode.id = iTempCount;
    oNode.style.position='absolute';
   
    oNode.setActive()
}

Jeg har prøvet alt fra oNode.onclick til createEvent .. Intet ser ud til at fungere - behøves ikke være x-platform kun nødvendigt at det er IE-kompatibelt.

På forhånd tak =)
Avatar billede snepnet Nybegynder
29. juli 2004 - 09:31 #1
Har du prøvet med attachEvent ?
Avatar billede chrha22 Nybegynder
29. juli 2004 - 09:33 #2
Jeg har prøvet med oNode.attachEvent('onclick','alert("hej")');
- Men IE kaster en Type Mismatch.

Mystisk?
Avatar billede snepnet Nybegynder
29. juli 2004 - 09:36 #3
Hmm... tror ikke du kan gøre det på din node.

Prøv at se denne :

function WireDivs()
{   
    var divs = document.all.tags("DIV");
    Attach(inputFields);
}

function Attach(pageElements)
{
    for (i=0;i < pageElements.length;i++)
    {
        var element = pageElements[i];
        element.attachEvent('onclick', someFunction);
    }
}
Avatar billede snepnet Nybegynder
29. juli 2004 - 09:39 #4
Du burde også gøre det ved :

somediv = document.getElementById(divid);
somediv.attachEvent('onclick', someFunction);
Avatar billede snepnet Nybegynder
29. juli 2004 - 09:41 #5
Hov....
den her tror jeg heller ikke går :
oNode.attachEvent('onclick','alert("hej")');

prøve at lav en funktion som laver alert('hej'), og så angiv den sådan her :
oNode.attachEvent('onclick',funktionerudskriverhej);
Avatar billede chrha22 Nybegynder
29. juli 2004 - 09:42 #6
Følgende virker desværre heller ikke ... Der bliver stadigt ikke fanget?

Bemærk at DIV'en er Editable - kan det måske have noget at sige ?

function fnInsertText(oTxtId,oTxtFont) {
    var oNode=document.createElement("div");
    card.insertBefore(oNode);
    oNode.style.fontFamily=oTxtFont;
    oNode.innerText='Skriv tekst her';
    giLastTxt++;
    var iTempCount = "Text" + giLastTxt;
    oNode.id = iTempCount;
    oNode.style.position='absolute';
    alert('hej');
    WireDivs;
   
    oNode.setActive()
}

function WireDivs()
{   
    var divs = document.all.tags("DIV");
    Attach(inputFields);
}

function Attach(pageElements)
{
    for (i=0;i < pageElements.length;i++)
    {
        var element = pageElements[i];
        element.attachEvent('onclick', 'alert("hej")');
    }
}
Avatar billede snepnet Nybegynder
29. juli 2004 - 09:47 #7
Missede du den her :
http://www.eksperten.dk/spm/524333#rid4808526

Jeg tror ikke man kan gøre sådan der :
element.attachEvent('onclick', 'alert("hej")');

Men hvis du har en

function Greetings()
{
  alert('hej');
}

så kan du prøve :
element.attachEvent('onclick', greetings);
Avatar billede chrha22 Nybegynder
29. juli 2004 - 09:48 #8
Jubii! Du er sej!

Som det måske fremstår er jeg normalt VBscripter - Javascript er nyt land for mig...

Anyway - det er åbenbart ikke muligt at attache en onclick - men mousedown virker forrygende!

Smider du et svar - så er der point på vej fra undertegnede.

Brugbar attachEvent:
oNode.attachEvent('onmousedown', MyFunction);
Avatar billede snepnet Nybegynder
29. juli 2004 - 10:27 #9
Fedt at det spiller... :o)
Avatar billede snepnet Nybegynder
29. juli 2004 - 10:32 #10
Hov... 200 er nok lidt voldsomt - mon ikke du skulle nappe de 170 selv :o)
Avatar billede chrha22 Nybegynder
29. juli 2004 - 13:33 #11
Det var klart 200point værd =) Har brugt OCEANER af tid på det ;o)
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