attachEvent
Marc
- javascript
Hallo,
ich habe hier diese Funktion:
----------------------------------------------------------------------
AlbumList.prototype.getList = function()
{
var cellCount = 0;
this.getAlbumsList();
tmpDivContainer = document.createElement('div');
tmpDivContainer.id = 'albumListContainer';
for (var i = 0; i < this.albums.albums.length; i++)
{
tmpDiv = document.createElement('div');
tmpDiv.id = 'albumList'+i;
tmpDiv.innerHTML = this.albums.albums[i].name;
if (this.browser == 'msie')
tmpDiv.attachEvent('onmouseover', function(evt){alert('asdsad');this.className = 'selected';});
tmpDivContainer.appendChild(tmpDiv);
cellCount++;
if (cellCount == 5)
{
cellCount = 0;
}
}
if (cellCount > 0)
{
for (i = cellCount; i < 5; i++)
{
tmpDiv = document.createElement('div');
tmpDiv.className = 'empty';
tmpDiv.innerHTML = 'sdsa';
tmpDivContainer.appendChild(tmpDiv);
}
}
tmpDivContainer.innerHTML += '<br class="clear" />';
return tmpDivContainer;
----------------------------------------------------------------------
Das Ganze dient dazu, eine Liste von Alben anzuzeigen. Jetzt soll jedes Album einen rollover-Effekt bekommen (FF und IE7 per CSS). Dazu wollte ich hier für den IE6 per onmouseover eine neue Klasse zuweisen.
Das wollte ich mit attachEvent machen. Klappt aber nicht. Es passiert gar nichts. Wende ich hingegen das attachEvent auf tmpDivContainer an, funktioniert es bei diesem.
Ich sehe da nirgends einen Fehler..
Ach ja - Der zurückgegebene Wert wird per appendchild in einen weiteren Div-Container enigebunden.
if (this.browser == 'msie')
tmpDiv.attachEvent('onmouseover', function(evt){alert('asdsad');this.className = 'selected';});
ist this auch das richtige Objekt?
ich kenn die Funktion attachEvent nicht im Detail, ich mache sowas immer so:
tmpDiv.onmouseover = function(evt)
{
this.className = 'selected';
});
Struppi.
if (this.browser == 'msie')
tmpDiv.attachEvent('onmouseover', function(evt){alert('asdsad');this.className = 'selected';});ist this auch das richtige Objekt?
ich kenn die Funktion attachEvent nicht im Detail, ich mache sowas immer so:tmpDiv.onmouseover = function(evt)
{
this.className = 'selected';
});Struppi.
Das habe ich schon probiert - Mit demselben Resultat. Das Objekt ist def. das richtige.
Das habe ich schon probiert - Mit demselben Resultat. Das Objekt ist def. das richtige.
woher weißt du das?
existiert die Klasse?
Struppi.
Das habe ich schon probiert - Mit demselben Resultat. Das Objekt ist def. das richtige.
woher weißt du das?
existiert die Klasse?Struppi.
Vielleicht verstehe ich nicht ganz.
tmpDiv wird doch einige Zeilen darüber generiert?!
Welche Klasse meinst Du?
Vielleicht verstehe ich nicht ganz.
tmpDiv wird doch einige Zeilen darüber generiert?!
ich meine in der onmouseover Funktion ist dort this gleich tmpDiv?
Welche Klasse meinst Du?
Mit className = '..' weist du dem Element eine CSS Klasse zu. folglich muss diese Klasse auch existieren.
Struppi.
Mit className = '..' weist du dem Element eine CSS Klasse zu. folglich muss diese Klasse auch existieren.
Struppi.
Ach das meinst Du. Ja, die existiert. Es wird aber auch das alert(...) nicht ausgeführt.
Ach das meinst Du. Ja, die existiert. Es wird aber auch das alert(...) nicht ausgeführt.
Dann ist irgendwo anders in deinem Code ein Fehler. Läßt sich aber so schlecht sagen wo.
Struppi.