02. januar 2009 - 12:49
Der er
15 kommentarer og 2 løsninger
onkeydown virker ikke i IE, Hvorfor?
Hej eksperter
Jeg har lavet mig et lille script der søger efter data i en MySQL DB
Kan ses her
http://multipumpen.dk/shop/admin_ny/2.1.php Prøv feltet "Ordrelinier" - "Vare nr."
I FF spiller det hele som det skal, men I IE virker de dynamisk oprettede events ikke.
Der er ialt 3 events der bliver oprettet dynamisk
De skrives således
newrow.setAttribute("onmouseover","classChange('var', 'TR', 'tr_hover',"+i+")");
Hvis jeg kigger i "generated source" er alt som det skal være i både IE og FF
Håber der er en der kan hjælpe.
Annonceindlæg fra Arrow ECS
02. januar 2009 - 14:19
#1
koden ser ud til at virke i IE7. Jeg får en popup, som beregnes dynamisk.
02. januar 2009 - 16:47
#2
hvornår bliver de genereret? den popup med varenumre kommer fint ved mig i ie7, men jeg fotstår ikke på dit spørgsmål, at det er det der er problemet, men jeg kan ikke se hvad det er så...
02. januar 2009 - 16:47
#3
Hej welcor Tak for info. Men det er ikke her problemet er. Problemet kommer når der vælges fra listen med musen. I selve listen bliver der genereret 3 events. mouseover (markere den valgte linie) mouseout (fjerner markering fra linien) onmousedown (smidder valgte ID tilbage til søgefeltet.) så søgningen i listen fungere som den skal, men de events der er placeret i listen virker ikke i IE7 !
02. januar 2009 - 16:49
#4
der sker intet når jeg vælger en vare fra listen der kommer op, er det det der er problemet? hvis jeg skriver "1" i varenummer, kommer der også varer der ikke starter med "1"..?
02. januar 2009 - 16:52
#5
Den 'rigtige' måde at gøre sådan noget i dag ser ca. sådan ud: ... parElm.appendChild(newrow); if(newrow.addEventListener) newrow.addEventListener("mouseover",function(){classChange('var', 'TR', 'tr_hover',i)},true); else if(newrow.attachEvent) newrow.attachEvent("onmouseover", function(){classChange('var', 'TR', 'tr_hover',i)}); else newrow.onmoseover = classChange('var', 'TR', 'tr_hover',i);
02. januar 2009 - 17:22
#6
splazz Så virker det som det skal, bortset fra onmouseover, onmouseout og onmousedown ikke virker.
02. januar 2009 - 17:24
#7
roenving idag laver jeg mine rækker således var newrow=tBody.insertRow(-1); // Ny række newrow.setAttribute("onmousedown",CallbackVar.CallBack +"('"+CallbackVar.ReturnField+"','"+aRows[i][CallbackVar.ReturnId]+"')"); newrow.setAttribute("onmouseover","classChange('"+CallbackVar.Div+"', 'TR', 'tr_hover',"+i+")"); newrow.setAttribute("onmouseout","classChange('"+CallbackVar.Div+"', 'TR', 'tr',"+i+")"); Hvordan skal det omskrives, kan du give et eksempel? Men burde det ikke virke når "generated source" er iorden?
02. januar 2009 - 17:32
#8
ja det der med setAttribute virker ikke optimalt i hvert fald, jeg bruger også selv den funktion roenving skriver her, jeg tror faktisk at det er fra ham jeg fik den i sin tid. function addEvent(elm, evt, func){ if(elm.addEventListener)elm.addEventListener(evt, function(){eval(func)}, false); else if(elm.attachEvent)elm.attachEvent("on"+evt, function(){eval(func)}); else elm["on"+evt] = eval(func); } bruges: addEvent(newrow, "mousedown", "alert('hej: "+i+"');");
02. januar 2009 - 17:46
#9
Har lige rodet med det, havde lavet ca. samme funktion, men så virker det slet ikke, hverken i IE eller FF. Her er den linje jeg kalder funktionen med. addEvent(newrow, "onmousedown", CallbackVar.CallBack +"('"+CallbackVar.ReturnField+"','"+aRows[i][CallbackVar.ReturnId]+"')");
02. januar 2009 - 18:15
#10
ja det er lidt tricky, har heller ikke selv *helt* styr på det :S prøv med: addEvent(newrow, "mousedown", "CallbackVar.CallBack(CallbackVar.ReturnField,aRows[i][CallbackVar.ReturnId])");
02. januar 2009 - 20:21
#11
Nu fik jeg skittet til at virke. det skal være "mousedown" ikke "onmousedown"
Og er der en der kan forklare mig hvorfor?
splazz, kan du ikke smide et svar som tak for hjælpen.
Prøv at tage et kig nu. nu skulle det spille.
DET BLIVER PISSE GODT!! TAKKER
http://multipumpen.dk/shop/admin_ny/2.1.php
02. januar 2009 - 20:27
#12
ja det hjalp jo lidt på det... grunden til at det ikke skal være med "on" foran, er at alt efter hvilken metode der skal bruges for at tilføje eventhandleren, hedder det "mouseover" eller "ONmouseover", så i tilfældet hvor der skal "on" foran, gør den det selv i funktionen addEvent() - alle eventhandlerne starter på "on"...
02. januar 2009 - 20:28
#13
og så et svar... dog synes jeg at roenving skal have halvdelen, da han var først med den korrekte løsning...
02. januar 2009 - 21:23
#14
OK venter lige. Så kan du også lige smide et svar roenving
03. januar 2009 - 11:36
#15
Velbekomme '-)
03. januar 2009 - 20:15
#16
Foresten, lige et sidste spørgsmål Hvorfor bruger du eval() i din funktion? Kan den ikke laves uden? Synes at have hørt at eval er rimelig ressource krævende.
05. januar 2009 - 16:42
#17
Tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling