Homepage selbermachen 7.852 Themen, 35.619 Beiträge

JavaScript/DOM Problem mit IE

xafford / 7 Antworten / Baumansicht Nickles

Hallo, ich bräuchte einmal Hilfe, und zwar geht es um Objekte, die über das Document Object Model generiert wurden und EventHandler.
Es passiert ungefähr folgendes:

var table=document.createElement("table");
document.getElementByTagName("body")[0].appendChild(table);
var row=table.insertRow(0);
var cell=row.insertCell(0);
cell.setAttribute("onCLick","doSomething(this)");

Schön und gut, mit Mozilla/FB/FF funktioniert dies einwandfrei, nur der IE ignoriert den zugewiesenen Eventhandler. Auch eine Zuweisung über:

var handler=document.createAttribute("onClick");
handler.nodeValue="doSomething(this)";
cell.setAttributeNode(handler);

tut nicht das erwünschte. Hier steigt sogar Moz/FB/FF aus mit einem internen Fehler. Das Problem ist, daß ich zum einen die Objekte dynamisch erzeugen muß und ihnen zum anderen auch Eventhandler zuweisen muß.
Wer sich das Ganze in Aktion anschauen will:
class_table5.html

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
thomas woelfer xafford „JavaScript/DOM Problem mit IE“
Optionen

var div=document.createElement("div");
div.innerHTML = "jetzt sichtbar";
document.body.appendChild( div);
div.onclick = foo;
// foo ist eine funktion die weiter oben definiert wurde

( http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/open_1.asp )

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen
xafford thomas woelfer „JavaScript/DOM Problem mit IE“
Optionen

Ja, so hatte ich es auch versucht, das Problem ist, daß ich bei onclick einen parameter übergeben muß, der mir sagt, was genau geklickt wurde, daran hapert es momentan. Bei IE wird mir zwar das Ereignis übergeben, ich weiß aber ehrlich gesagt nicht so recht, wie ich aufgrund des Ereignis rückschlüsse darauf ziehe, welche Zelle in vorliegenden Fall geklickt wurde.
Leider finde ich keine genaue Beschreibung, welche Eigenschaften das Objekt Evebt besitzt und ob mir dies irgendwie hilft.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
thomas woelfer xafford „JavaScript/DOM Problem mit IE“
Optionen

achso... das ist einfach.

du gibts allen zellen/divs oder was du sonst da hast eine eindeutige id.

im handler kommst du dann an die zelle ran:

function foo
{
var cell = event.srcElement;
}

die komplette (und meiner meinung nach extrem gelungene) docu dazu ( event ) findest du bei msdn in der dhtml reference unter 'objects'.

link weiss ich gerade nicht auswending, ist aber in meinem http://www.die.de/blog>blog rechts am rand unter 'navigation' aufgeführt.

WM_CHEERS


this posting contains no tpyos.
bei Antwort benachrichtigen
thomas woelfer Nachtrag zu: „JavaScript/DOM Problem mit IE“
Optionen

<code>
function foo()
{
alert( event.srcElement.id);
}

var div=document.createElement("div");
div.id = "div42";
div.innerHTML = "jetzt sichtbar";
document.body.appendChild( div);
div.onclick = foo;
</code>

this posting contains no tpyos.
bei Antwort benachrichtigen
xafford thomas woelfer „ausführliches beispiel“
Optionen

Danke, genau was ich gesucht habe, die id brauche ich nicht einmal, srcElement reicht mir, da ich ohnehin mit dem Obkjekt weiter arbeite.

ps: warum hab ich keine Emailbenachrichtigung für die Antwort bekommen? Kommt die nur bei Antworten direkt auf das Ausgangspoting mittlerweile?

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
thomas woelfer xafford „ausführliches beispiel“
Optionen

du hast keine bekommen, weil ich nur noch mit v2 arbeite und v2 die mail benachrichtigung noch nicht kann.. :)

this posting contains no tpyos.
bei Antwort benachrichtigen
xafford thomas woelfer „ausführliches beispiel“
Optionen

Achso :o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen