Firefox-Bug oder Fehler meinerseits!?

akkie

Erfahrenes Mitglied
Hallo

Ich habe mal um mein Problem zu erklären ein zip Archiv mit einer Testseite angehängt.

Ich möchte eine Mouseover realisieren. In meiner HTML-Seite lade ich im Body per "onload" Event ein Objekt. In den Links steht dann
HTML:
onmouseover="if (jslib.media.hover) jslib.media.hover(this);
für den Aufruf der "hover" Methode auf dem Objekt media.hover. Das ganze funktioniert perfekt außer wenn ich auf einen Link klicke und sofort mit der Maus über die darunter/darüber liegenden Buttons fahre. Dann kommt nämlich ein 'jslib is not defined' Fehler in der Firefox Konsole. Ich habe das Gefühl das beim unload der Seite zwar das Objekt gelöscht wird, das if aber den Status nicht erkennt.

Vielleicht irre ich mich ja und habe einen entscheidenden Fehler gemacht!?

Browser ist Firefox 2.0.0.1

Mfg Akkie
 

Anhänge

Zuletzt bearbeitet:
Also ich würde erstmal die klasse nicht genau so nennen wie ihre Instanz. Wenn du jetzt eine neue Instanz der Klasse erstellen würdest, dann müsste er je versuchen die bereits erstellte Instanz als Funktion ansehen...
Und weiterhin, wenn beim Laden der Seite die Instanz noch nicht erstellt ist, dann muss jslib.media.hover ja ein Fehler geben, da jslib bereits "null" ist. Und da kann er nicht auch noch auf .media zugreifen. Besser also:

Code:
function JSLib( ... ) {}
var jslib;
....
jslib = new JSLib();
...
if( jslib && jslib.media && jslib.media.hover ) jslib.media.hover( this );
 
Hi

Das Problem ist ja nicht das er ein Fehler bei jslib.media.hover sondern bei jslib bringt!

Mein Code sah so aus weil ich alle möglichen Kombinationen durchgeprüft habe. Er meckert auch rum wenn ich so Prüfe wie du es gesagt hast.

HTML:
if( jslib && jslib.media && jslib.media.hover ) jslib.media.hover( this );

Mfg Akkie
 
Probiers mal so:
Code:
onmouseover="try{jslib.media.hover(this);}catch(e){return true;}"

Wie OnlyFoo bereits mutmasste, wird das Objekt zu dem Zeitpunkt des Fehlers noch nicht erstellt sein....das fängst du damit ab.
 
Hi

Mit dem Beispiel von Sven gehts. Hätte ich auch selber drauf kommen können.:rolleyes:
Schade ist, das ich so nicht mehr den event.type abfragen kann.

HTML:
        this.hover = function(event)
	{
		alert (event.type); //undefined
	}

Mfg Akkie
 

Neue Beiträge

Zurück