Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 1999 Teil von April

SELFHTML Forumsarchiv
Parameter wird angeblich übergeben

Informationsseite
  1. Seite (JAVASCRIPT) Parameter wird angeblich übergeben von Jan M., 27. 04. 1999, 16:40
nach unten

Parameter wird angeblich übergeben

Die folgende Nachricht zum Thema stammt von: Jan M., 27. 04. 1999, 16:40

Hallo !
Nachdem das mit der letzten Frage so gut geklappt hat verusche ich es gleich nochmal.
Hier der Quellcode:

function menu(visible,l_name,zahl)
{
this.x = visible;
this.view=m_view;
this.hide=m_hide;
this.hideit=m_hide2;
this.name=l_name;
this.anzahl=zahl;
this.over=0;
}

function m_hide()
{
  if(this.over==0)
  {
setTimeout(this.hideit(),100);
  }
}

function m_hide2()
{
  if(this.over==0)
  {    
parent.frames[1].document.all.menu2.style.visibility='hidden';
  }
}

function m_view()
{
parent.frames[1].document.all.menu2.style.visibility='visible';
}

menu1 = new menu(0,'menu1',3);

Über einen MouseOver bzw MouseOut auf einem Bild
onMouseOver="menu1.view();menu1.over=1;"
onMouseOut="menu1.over=0;menu1.hide()"
soll nun das menu verschwinden.

Hierbei erhalte ich aber folgende Fehlermeldung:
ungültes Argument (die Zeilenangabe verweist auf
setTimeout(this.hideit(),100);)

Wenn mir jemand sagen könnte woran das liegt wäre ich ihm sehr dankbar.
(Browser ist IE 5.0)

Mit freudnlichem Gruß Jan M.

nach obennach unten

Parameter wird angeblich übergeben

Die folgende Nachricht zum Thema stammt von: Cheatah, 27. 04. 1999, 19:50

Hi,

»» function menu(visible,l_name,zahl)
»» function m_hide()
»» function m_hide2()
»» function m_view()

»» ungültes Argument (die Zeilenangabe verweist auf
»»  setTimeout(this.hideit(),100);)

sehe ich nur schlecht, oder ist eine Funktion hideit() gar nicht vorhanden? :-)

Wie dem auch sei, richtig wäre der Aufruf wie folgt:
window.setTimeout("hideit()",100);

Das "window" am Anfang ist glaube ich nicht nötig, ich hab's mir halt angewöhnt. Bei der Funktion brauchst Du jedenfalls kein "this", dafür muß sie auf jeden Fall in Anführungszeichen stehen!

Cheatah

nach obennach unten

Parameter wird angeblich übergeben

Die folgende Nachricht zum Thema stammt von: Jan M., 27. 04. 1999, 21:04

»» Hi,
»»
»» »» function menu(visible,l_name,zahl)
»» »» function m_hide()
»» »» function m_hide2()
»» »» function m_view()
»»
»» »» ungültes Argument (die Zeilenangabe verweist auf
»» »»  setTimeout(this.hideit(),100);)
»»
»» sehe ich nur schlecht, oder ist eine Funktion hideit() gar nicht vorhanden? :-)
»»
»» Wie dem auch sei, richtig wäre der Aufruf wie folgt:
»» window.setTimeout("hideit()",100);
»»
»» Das "window" am Anfang ist glaube ich nicht nötig, ich hab's mir halt angewöhnt. Bei der Funktion brauchst Du jedenfalls kein "this", dafür muß sie auf jeden Fall in Anführungszeichen stehen!
»»
»» Cheatah

Hi nochmal!
Also im original posting steht
this.hideit=m_hide2;
damit sollte ich doch this.hideit() aufrufen können oder nicht?
lasse ich jetzt das 'this.' weg sagt er mir funktion würde nicht existieren, was auch einleuchtet.
Wie ist es also möglich, nach 1 s die hideit() funktion eines objektes aufzurufen?

zunächst mal danke für erste posting.

MFG Jan M.

nach obennach unten

Parameter wird angeblich übergeben

Die folgende Nachricht zum Thema stammt von: Cheatah, 28. 04. 1999, 05:44

Hi,

»» Also im original posting steht
»» this.hideit=m_hide2;

ach so! Das habe ich übersehen... sorry!

»» damit sollte ich doch this.hideit() aufrufen können oder nicht?

Nein. hideit ist eine Variable, keine Funktion. Du kannst höchstens ein Konstrukt mit eval versuchen, etwa der Art eval("this.hideit"+"()"); aber ehrlich gesagt glaube ich da nicht dran. Ich würde eher eine Funktion versuchen, die hideit auf den Wert überprüft und dann entsprechend verzweigt, also etwa:
function jump() {
  if (hideit == 'm_hide2') m_hide2();
  else if (hideit == '...') ...();
}

Cheatah

nach obennach unten

Parameter wird angeblich übergeben

Die folgende Nachricht zum Thema stammt von: Jan M., 28. 04. 1999, 11:47

»» Hi,
»»
»» »» Also im original posting steht
»» »» this.hideit=m_hide2;
»»
»» ach so! Das habe ich übersehen... sorry!
»»
»» »» damit sollte ich doch this.hideit() aufrufen können oder nicht?
»»
Ich würde eher eine Funktion versuchen, die hideit auf den Wert überprüft und dann entsprechend verzweigt, also etwa:
»» function jump() {
»»   if (hideit == 'm_hide2') m_hide2();
»»   else if (hideit == '...') ...();
»» }
»»
»» Cheatah

Hi !

window.setTimeout(this.name+".hideit()",1000);

Dies ist der Aufruf wie ich ihn jetzt verwende, der klappt und macht genau das was ich will. ich bin gestern nacht noch selber draufgekommen.

danke fuer die antwort.

Jan M.

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 1999 Teil von April

© 1998-2006 Seite Impressum, Software: Classic Forum