Forum Doku Wiki Blog

Forumsarchiv 2005, November
Fehlermeldung "Not enough arguments"

archivierte Beiträge lesen

  1. (JAVASCRIPT) Fehlermeldung "Not enough arguments" von Yadgar, 23. 11. 2005, 16:01

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:01 Uhr von Yadgar veröffentlicht.

High!

Nachdem das Grundgerüst meiner Javascript-generierten Navigationsleiste  steht, würde ich sie gerne mit ein paar schicken onMouseover/onClick-Effekten aufpeppen... also erzeugte ich für die Inline-Bilder zusätzliche Attribut-Knoten mit den Event-Handlern, z. B.:

      over2[i] = document.createAttribute("onMouseover");
      over2[i].nodeValue = "n" + i.toString()+"over.gif";
      im2[i].setAttribute(over2[i]);  // Zeile 122

Das führte zu einer Fehlermeldung, die sich auf die letzte der drei Zeilen bezog (im2[i] ist das jeweilige Inline-Bild in der Navigationsleiste): "not enough arguments" ... in line 122

Was mache ich falsch?

Bis bald im Khyberspace!

Yadgar

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:13 Uhr von Ashura veröffentlicht.

Hallo Yadgar.

> Nachdem das Grundgerüst meiner Javascript-generierten Navigationsleiste  steht, würde ich sie gerne mit ein paar schicken onMouseover/onClick-Effekten aufpeppen...

Du nutzt eine gänzlich per JS generierte Navigation?

Und warum nutzt du nicht die von CSS gegebenen Möglichkeiten hierfür?

>       im2[i].setAttribute(over2[i]);  // Zeile 122
>
> Das führte zu einer Fehlermeldung, die sich auf die letzte der drei Zeilen bezog (im2[i] ist das jeweilige Inline-Bild in der Navigationsleiste): "not enough arguments" ... in line 122
>
> Was mache ich falsch?

Du liest nicht.
Welches Attribut soll den den Wert erhalten? Lies dir bitte noch einmal die Syntax für setAttribute() durch.


Einen schönen Mittwoch noch.

Gruß, Ashura

--
The End of an Era...

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 24. 11. 2005, 09:51 Uhr von Yadgar veröffentlicht.

High!

> Du nutzt eine gänzlich per JS generierte Navigation?
>
> Und warum nutzt du nicht die von CSS gegebenen Möglichkeiten hierfür?

Das Problem ist, dass die einzelnen Seiten in einer hierarchischen Baumstruktur stehen und diese Struktur entsprechend der Schachtelungstiefe der gerade geladenen Seite in der Navigationsleiste abgebildet wird - wie soll das mit CSS gehen?

> Welches Attribut soll den den Wert erhalten? Lies dir bitte noch einmal die Syntax für setAttribute() durch.

Ich habe versucht, die Stelle zu korrigieren:

 name = "n"+i.toString()+"over.gif";
 att = document.createAttribute("onMouseOver");
 im2[i].setAttribute(att, name); // Zeile 122

und bekomme für Zeile 122 jetzt:

Error: uncaught exception: [Exception... "String contains an invalid character"  code: "5" nsresult: "0x80530005 (NS_ERROR_DOM_INVALID_CHARACTER_ERR)"  location: "file:///D:/Dokumente%20und%20Einstellungen/diego/Desktop/Benutzer/Bleimann/nav.js Line: 122"]

Wieso das? Mit alert(name) wird ein einwandfreier String, nämlich der  Dateiname des bei mouseOver anzuzeigenden Inline-Bildes angezeigt!

Bis bald im Khyberspace!

Yadgar

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 24. 11. 2005, 13:31 Uhr von Ashura veröffentlicht.

Hallo Yadgar.

> Ich habe versucht, die Stelle zu korrigieren:
>
> name = "n"+i.toString()+"over.gif";
> att = document.createAttribute("onMouseOver");
> im2[i].setAttribute(att, name); // Zeile 122


1. Warum setzt du das betroffene Attribut nicht einfach?
Es exisitert bereits, also:

im2[i].onmouseover = name;

2. Welchen Zweck sollte es haben, einem Eventhandler die URL einer Ressource zuzuweisen?
Im Endeffekt hast folgendes:

<img src="..." onmouseover="n2over.gif" />

Ergibt dies deiner Meinung nach einen Sinn?

3. i.toString()
Das toString() dürfte überflüssig sein, da der Index i automatisch zu einem String wird, wenn er mit einem solchen verkettet wird.

> Wieso das? Mit alert(name) wird ein einwandfreier String, nämlich der  Dateiname des bei mouseOver anzuzeigenden Inline-Bildes angezeigt!

Das ist auch nicht dein Problem.

Du versuchst, dem onmouseover-Eventhandler dynamisch eine Funktion zuzuweisen. Dies ist jedoch nicht ganz trivial, im Archiv findest du einige Lösungsansätze hierzu.


Einen schönen Donnerstag noch.

Gruß, Ashura

--
The End of an Era...

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 25. 11. 2005, 09:44 Uhr von Yadgar veröffentlicht.

High!

Jetzt habe ich den ganzen Wust mit createAttribute etc. durch folgende acht Zeilen ersetzt:

      over = new Image();
      click = new Image();
      over.src = "n"+i+"over.gif";
      click.src = "n"+i+"click.gif";
      out = "n"+i+".gif";
      im2[i].onmouseover = "src = over.src";
      im2[i].onclick = "src = click.src";
      im2[i].onmouseout = "src = out";

Fehlermeldungen bekomme ich keine mehr... trotzdem ändert sich beim Überfahren bzw. Anklicken der Navigationselemente die Grafik nicht!

> Du versuchst, dem onmouseover-Eventhandler dynamisch eine Funktion zuzuweisen.

Nein, ich will dynamisch erzeugten und platzierten Navigationselementen Eventhandler (onMouseOver, onClick und onMouseOut) zuweisen, die Inhalte der Eventhandler ändern sich jedoch nicht, von daher geht es nicht um dynamisch zugewiesene Funktionen!

Bis bald im Khyberspace!

Yadgar

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 25. 11. 2005, 13:24 Uhr von JürgenB veröffentlicht.

Hallo Yadgar,

>       im2[i].onmouseover = "src = over.src";
>       im2[i].onclick = "src = click.src";
>       im2[i].onmouseout = "src = out";

Eventhandler regeln, was beim eintreten eines Events gemacht werden soll. Daher sollte man dem Eventhandler eine Funktion zuweisen.

function tuwas() {
...
}
...
im2[i].onmouseover=tuwas;

oder

im2[i].onmouseover=function() { ... } ;

z.B.

im2[i].onmouseover=function() { this.src=over.src } ; (nicht getestet )

Gruß, Jürgen

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 25. 11. 2005, 14:29 Uhr von Yadgar veröffentlicht.

High!


> Eventhandler regeln, was beim eintreten eines Events gemacht werden soll. Daher sollte man dem Eventhandler eine Funktion zuweisen.

Genau das habe ich gemacht, der Code sieht jetzt so aus:

      over = new Image();
      click = new Image();
      out = new Image();
      over.src = "n"+i+"over.gif";
      click.src = "n"+i+"click.gif";
      out.src = "n"+i+".gif";
      im2[i].onmouseover = function (evt) {this.src = over.src};
      im2[i].onclick = function (evt) { this.src = click.src };
      im2[i].onmouseout = function (evt) { this.src = out.src };

Jetzt reagiert die Navigationsleiste auch tatsächlich auf Überfahren bzw. anklicken, nur...

...die Leiste enthält zwei Navigationselemente (im2[0] und im2[1]), aber aus einem mir nicht ersichtlichen Grund werden *beiden* Navigationselemente die Alternativ-Grafiken für im2[1] zugewiesen!
Woran könnte das liegen? Wenn ich die Variablen für die neu anzulegenden Bilder (also over, click und out) als Array mit der Größe 2 programmiere und sie in den Wert- und Funktionszuweisungen (ab Zeile 4) entsprechend mit Index versehe, bekomme ich die Meldung "over[i] has no properties"! Rätsel über Rätsel...

Bis bald im Khyberspace!

Yadgar

Dynamischer Eventhandler

Der folgende Beitrag wurde am 25. 11. 2005, 14:49 Uhr von JürgenB veröffentlicht.

Hallo Yadgar,

>       over = new Image();
>       click = new Image();
>       out = new Image();
>       over.src = "n"+i+"over.gif";
>       click.src = "n"+i+"click.gif";
>       out.src = "n"+i+".gif";
>       im2[i].onmouseover = function (evt) {this.src = over.src};
>       im2[i].onclick = function (evt) { this.src = click.src };
>       im2[i].onmouseout = function (evt) { this.src = out.src };

wenn der (das?) Event kommt, sind die Variablen (over, click, out) nicht mehr vorhanden bzw. mit dem letzten Wert überschrieben. Lass den oberen Teil als Preloader drin, schreib aber in die Eventdefinition direkt den Dateinamen. Ich glaube, das geht so:

im2[i].onmouseover = function (evt) {this.src = "n"+i+"over.gif"};

Ich bin mir jetzt nicht ganz sicher, ob das so klappt, aber das wurde hier schon öfter diskutiert, schau mal ins Archiv.

Gruß, Jürgen

Dynamischer Eventhandler

Der folgende Beitrag wurde am 25. 11. 2005, 15:03 Uhr von Yadgar veröffentlicht.

High!

> wenn der (das?) Event kommt, sind die Variablen (over, click, out) nicht mehr vorhanden bzw. mit dem letzten Wert überschrieben. Lass den oberen Teil als Preloader drin,

Was meinst Du mit "Preloader"? Einfach unverändert lassen oder ganz aus der Arrayschleife ausgliedern? Ich habe es vorsichtshalber erst einmal drin gelassen...

> im2[i].onmouseover = function (evt) {this.src = "n"+i+"over.gif"};
>
> Ich bin mir jetzt nicht ganz sicher, ob das so klappt, aber das wurde hier schon öfter diskutiert, schau mal ins Archiv.

Das funktioniert leider nicht... es gibt zwar keine Fehlermeldung, aber auch keine Reaktion der Navigationsleiste mehr!

Und im Archiv suchen... das dauert Stunden, soviel Zeit habe ich nicht,  um vier Uhr muss ich hier weg!

Bis bald im Khyberspace!

Yadgar

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:17 Uhr von Gunnar Bittersmann veröffentlicht.

Yadgar,

> Nachdem das Grundgerüst meiner Javascript-generierten Navigationsleiste  steht […]
> Was mache ich falsch?

Du setzt eine clientseitige Technik zu Navigationszwecken voraus. Für viele Besucher u.a. Clients wird deine Seite dadurch völlig wertlos.

Live long and prosper,
Gunnar
--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:26 Uhr von Joachim veröffentlicht.

Hi,

> Für viele Besucher u.a. Clients wird deine Seite dadurch völlig wertlos.
Hatte er _danach_ gefragt?

Gruesse, Joachim
--
Am Ende wird alles gut.

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:29 Uhr von Gunnar Bittersmann veröffentlicht.

> > Für viele Besucher u.a. Clients wird deine Seite dadurch völlig wertlos.
> Hatte er _danach_ gefragt?

Joachim,
Das Beste an diesem Forum ist, dass man auch auch Antworten bekommt, nach denen man nicht gefragt hat.

Dass es Leute gibt, die einen darauf hinweisen, dass man mit seinem Konzept vorn vornherein auf dem Holzweg ist, anstatt zu „helfen“, ein sinnloses Konzept aufzupeppen.

Live long and prosper,
Gunnar
--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:49 Uhr von Joachim veröffentlicht.

Hi,

> Dass es Leute gibt, die einen darauf hinweisen, dass man mit seinem Konzept vorn vornherein auf dem Holzweg ist, anstatt zu „helfen“, ein sinnloses Konzept aufzupeppen.
Im Prinzip stimme ich Dir zu. Imho sollte ein solcher Hinweis jedoch _Bestandteil_ des Loesungsvorschlages sein - nicht Selbstzweck. Moeglicherweise hat er ja Alternativen eingeplant.

Gruesse, Joachim
--
Am Ende wird alles gut.

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:30 Uhr von s sschumann veröffentlicht.

> Hatte er _danach_ gefragt?
Das Phänomen "Ich weiß nichts, hab aber was zu sagen".

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:42 Uhr von wahsaga veröffentlicht.

hi,

> > Für viele Besucher u.a. Clients wird deine Seite dadurch völlig wertlos.
> Hatte er _danach_ gefragt?

Vielleicht hatte er darüber ja auch noch gar nicht _nachgedacht_ ...?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Fehlermeldung "Not enough arguments"

Der folgende Beitrag wurde am 23. 11. 2005, 16:23 Uhr von Joachim veröffentlicht.

Hi,

>       over2[i] = document.createAttribute("onMouseover");
over2[i].onmouseover =  ...

>       im2[i].setAttribute(over2[i]);  // Zeile 122
setAttribute(name, wert)

Gruesse, Joachim
--
Am Ende wird alles gut.

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4