Hilfe bei einem Script ich komme nicht mehr weiter

DrJJ

New member
Das script läuft eigentlich nur wenn die Variable Helptext ein Leerzeichen enthält wird die Funktion showdesclayer nicht mehr aufgerufen was mache ich da Falsch?

Es handelt sich dabei um diesen aufruf onmouseover=showDesclayer("'+helptext+'");

menus=new Array(); var a=0; var b=0; var c=0; var d=0
function makeMenu(type,text,helptext,lnk,target,end){

str=""; tg="";
if(target) tg='target="'+target+'"'
if(!lnk) lnk="#"
self.status=lnk
if(a==0) str='<div id="divSlideCont">\n'
if(type=="top"){
menus[a]=new Array();
if(text=="seperator"){
str+='\t<div id="divSlide'+a+'" class="clSlide"></div>\n'
menus[a].seperator=1
}else{
str+='\t<div id="divSlide'+a+'" class="clSlide"><a href="'+lnk+'" '+tg+' onclick="swmenu('+a+',-1,-1); if(bw.ie || bw.ns6) this.blur(); '
if(lnk=="#") str+='return false'
str+='" class="clSlideLinks">*'+text+'</a><br></div>\n'
}
menus[a].subs=0; a++; b=0
}else if(type=="sub"){
str+='\t\t<div id="divSlideSub'+(a-1)+'_'+(b)+'" class="clSlideSub"><a '+tg+' onclick="swmenu('+(a-1)+','+b+',-1); if(bw.ie || bw.ns6) this.blur();'
if(lnk=="#") str+='return false'
str+='" href="'+lnk+'" class="clSlideSubLinks" onmouseover=showDesclayer("'+helptext+'"); onMouseOut="hideDesclayer();">'+text+'</a><br></div>\n'
b++; menus[a-1].subs=b; menus[a-1][b-1]=new Array(); c=0; menus[a-1][b-1].subs=0

}else if(type=="sub2"){
str+='\t\t<div id="divSlideSub'+(a-1)+'_'+(b-1)+'_'+c+'" class="clSlideSub2"><a '+tg+' href="'+lnk+'" class="clSlideSub2Links">**'+text+'</a><br></div>\n'
c++; menus[a-1][b-1].subs=c; menus[a-1][b-1][c-1]=new Array(); d=0; menus[a-1][b-1][c-1].subs=0
}



if(end)str+="</div>"

document.write(str)
}
 
Zuletzt bearbeitet:
Waere der Code etwas schoener strukturiert, wuerde/koennte ich dir helfen. Aber so...
 
da ich nicht wirklich ahnung habe von Java kann ich das leider nicht besser strukturieren aber es geht im Grunde nur um diesen abschnitt

if(lnk=="#") str+='return false'
str+='" href="'+lnk+'" class="clSlideSubLinks" onmouseover=showDesclayer("'+helptext+'"); onMouseOut="hideDesclayer();">'+text+'</a><br></div>\n'


wenn Helptext nur ein wort ist geht es noch mit dem aufruf wenn aber der Helptext aus mehreren Wörtern bzw Leerzeichen besteht wird die funktion showdesclayer nicht mehr aufgerufen
 
Die Sprache heißt Javascript, Java ist komplett was anderes!

Der Code-Brei, den Du uns hier vorsetzt ist a) wenig lesefreundlich und b) potentiell fehlerhaft.

zu a) Deine Unkenntnis von Javascript hindert Dich nicht daran den Code optisch zu strukturieren. Also z.B. nur eine Anweisung pro Zeile, Leerzeichen, Einrückungen (ich weiß das Forum schnippelt etwaige führende Leerzeichen heraus, aber dafür gibt es die [ code] und [ php] Tags!) und eine sinnvolle, sprechende Benamung der Variablen und Funktionen sind nur einige Punkte. Dass der Browser oder in diesem Fall das Internet Gerät Ieh den Code ohne Murren schluckt ist noch kein Kriterium für vernünftigen Code. Ein Großteil Deiner Verwirrung und Ratlosigkeit resultiert maßgeblich aus der schlechten Optik des Codes. Außerdem erklärt es die rege Resonsanz und die große Bereitschaft der Mitglieder den Code auseinander zu friemeln.
zu b) Anweisungen in Javascript müssen alle mit einem Semikolon abgeschlossen werden. Du verwendest z.B. sie nur, wenn der Ieh es sonst gar nicht akzeptieren würde.

Sortier Deinen Code mal auseinander und versuche ihn zu strukturieren. Um den eigentlichen Fehler einzugrenzen solltest Du es mal mit "alert"s an den jeweiligen Stellen versuchen. Dann kannst Du den Inhalt der einzelnen Variablen ausgeben lassen und sehen, ob Annahme und Realität übereinstimmen.
 
das Problem ist das ich keine ahnung von der sprache habe nur ein fertiges script wo ich noch onmouseover=showdseclayer() eingefügt habe. Mit dem vereinfachen ist daher nicht einfach wenn man keine ahnung hat was man da eigentlich macht. Das einzigste was ich sagen kann ist wenn die Varable Helptest ein Leerzeichen hat wird die funktion show desclayer nicht mehr aufgerufen weil ich genau da mal mit einem Alert versucht habe ob sie aufgerufen wird und das passiert nicht mehr wenn ich ein Leerzeichen drin habe
 
Zurück
Oben