• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Problem mit script

cinhcet

New member
Hallo
PHP:
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
function position(obj,s,d,text) {
pos=document.getElementById("box")
pos_box=document.getElementById("link")
if(obj) {
    pos.innerHTML=text;
    pos.style.left = s+pos_box.style.left;
    pos.style.top  = d+pos_box.style.top;
} else {
    pos.style.left = -10000;
    pos.style.top  = 0;
}
}

//-->
</script>
<div id="link" style="position:absolute;top:0px;left:0px;" onclick="position(this,10,10,'<span 

style=\'position:absolute;top:0px;left:0px;\' onclick=\'position(0);\'>zurück</span>');">Link</div>

<div id="box" style="position:absolute;top:0px;left:0px;"></div>
</body>
</html>

nun mein problem:
wenn ich die funktion aufrufe, wird pos.style.left und pos.style.top aber nicht um s und d erhöht, sondern um viel mehr.
Wo hab ich da den denkfehler?
 
Moin!
cinhcet schrieb:
Wo hab ich da den denkfehler?
Streng genommen ist das alles Müll. Einer der Kernpunkte:

pos_box.style.left liefert einen String ('0px').

s+pos_box.style.left liefert dementsprechend: 10+'0px'='100px'...

Ahoi - Pit
 
ahhh, danke!!!
Aber wie bekomm ich jetzt hin, dass es dann auch nur 10 ist?
Warum ist das alles müll?
BTW: ich habe heute mit js angefangen, deswegen weiß ich noch fast nix.
 
Hallo
viiiielen dank!!!!
mit offsetLeft und Top klappts!!!!

PHP:
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
function position(obj,s,d,text) {
pos=document.getElementById("box")
pos_box=document.getElementById("link")
if(obj) {
    pos.innerHTML=text;
    pos.style.left = s+pos_box.offsetLeft;
    pos.style.top  = d+pos_box.offsetTop;
} else {
    pos.style.left = -10000;
    pos.style.top  = 0;
}
}

//-->
</script>
<div id="link" style="position:absolute;top:0px;left:0px;" onclick="position(this,500,10,'<span 

style=\'position:absolute;top:0px;left:0px;\' onclick=\'position(0);\'>zurück</span>');">Hallo</div>

<div id="box" style="position:absolute;top:0px;left:0px;"></div>


</body>

</html>

Sorry, ich vergaß den Einsatzzweck, ich will, dass wenn man auf einen Text klickt, an einer bestimmten stelle eine box kommt.
Ist das sooo falsch, oder kann ich es so lassen(funktionieren tusts ja)?
 
Was soll ich dir's erklären, wenn du's verstehen würdest, hättest du es nicht genommen, ansonsten bräuchte ich's dir nicht zu erklären. Aber z.b. kannst du mal einen DOCTYPE einbauen der dein Dokument im Standardmode darstellen läßt.
(und andere Fehler rauswerfen könntest Du auch noch...)
 
das ist ja nicht die ganze datei, hab ich ja nur zum testen gemacht, deswegen ist auch kein DOCTYPE drin.
Und verstehen tu ich das script, wie es funktioniert. Doch was ist daran müll?
Was denn für andere Fehler?
 
*gg*
nochmal danke für die schnellen Antworten!!!!
So schnell hab ichs shcon lange nicht mehr erlebt
Aso, das wird ein Browsergame. Unsere Planung steht soweit, PHP und MYSQL können wir alle sehr gut, doch jeder drückte sich bisher immer vor JS. Alle sachen, die mit JS gemacht werden müssen funktionieren nun aber.
Oder zumindestens fast, denn mir fällt gerade ein, dass wir das ja noch nen bisschen anders haben wollen.
seite.GIF

Links
Das sind Aktionsbalken, dort steht dann sowas wie "Um xx:xx:xx ist ihre xxxxx fertig gebaut" oder so. Dann noch ein Link ">>Details<<"
Wenn man dann dort draufklickt, sollen die unteren Balken nach unten gehen und sich eine neue Box dazwischen schieben(rechts).
Idee wie man das lösen könnte?
Ich versuchs gleich mal, indem ich bei onclick einfach die anderen balken nach unten schieb


edit: Soo, also wenn ich <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> reinhau, dann funktionierts aber immer noch.
Ich verstehe nicht, wo ich denn das px hinmachen soll?
Sorry für die dummen fragen, aber in JS bin ich totaler Noob

edit: jetzt ist auch das bild da
 
Zuletzt bearbeitet:
Für Browsergames haben wir eine ausgewiesene Expertin: Hermine (alias '.dominik.')...

Mann, bist Du breit!

Edit: warst breit...
 
ich hab den code jetzt nochmal ein bisschen verändert, denn sonst hätte ich es immer nur einmal aufrufen können.
Wenn man auf das "Hallo" drückt, kommt dann "zurück" wenn ich da draufdrücke, geht das "zurück" wieder weg
hier der aktuelle code

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
function position(obj,name,s,o,text) {
pos=document.getElementById("box")
if(obj) {
    pos.innerHTML=text;
    pos.style.left = s;
    pos.style.top  = o;
} else {
    pos.style.left = -10000;
    pos.style.top  = 0;
}
}

//-->
</script>
<div id="link" style="position:absolute;top:0px;left:0px;" onclick="position

(this,link,offsetLeft+10,offsetTop+10,'<span style=\'position:absolute;top:0px;left:0px;\' 

onclick=\'position(0);\'>zurück</span>');">Hallo</div>

<div id="link2" style="position:absolute;top:100px;left:0px;" onclick="position

(this,link,offsetLeft+100,offsetTop+10,'<span style=\'position:absolute;top:0px;left:0px;\' 

onclick=\'position(0);\'>zurück</span>');">Hallo</div>








<div id="box" style="position:absolute;top:0px;left:0px;"></div>


</body>

</html>
 
ich mein halt, so wie es bisher ist, funktioniert es. Veränder aber die ganze zeit schon was, deswegen poste ich immer die veränderungen
 
Bei mir wird erstmal ein Javascript angezeigt und zwei Wörter: Hallo Hallo. Allerdings wird der Code auch entsprechend abgewandelt.Ich werde es mal in einem anderem Editor versuchen.
 
also, ich hab den code schonwieder ein bisschen verändert, aber irgendwas will nicht so wirklich.

PHP:
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
var fox ="0"
function position(obj,name,an,s,o,text) {
pos=document.getElementById("box")
pos_an=document.getElementById(an)
if(obj) {
    if(fox == "0") {
    pos.innerHTML=text;
    pos.style.left = s+name.offsetLeft;
    pos.style.top  = o+name.offsetTop;
    pos_an.style.top  = 40+an.offsetTop;
    fox = "1"
    }

} else {
    pos.style.left = -10000;
    pos.style.top  = 0;
    pos_an.style.top  = an.offsetTop-40;
    fox = "0"
}
}


//-->
</script>
<div id="link" style="position:absolute;top:0px;left:0px;" onclick="position

(this,link,link2,10,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position

(0);\'>zurück</span>');">Hallo</div>

<div id="link2" style="position:absolute;top:100px;left:0px;" onclick="position

(this,link2,link,100,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position

(0);\'>zurück</span>');">Hallo</div>



<div id="box" style="position:absolute;top:0px;left:0px;"></div>


</body>

</html>

Das script soll jetzt das untere "Hallo" mit nach unten schieben, doch irgendwie tut dies nicht.

Wenn ich

PHP:
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
var fox ="0"
function position(obj,name,s,o,text) {
pos=document.getElementById("box")
pos_an=document.getElementById("link2")
if(obj) {
    if(fox == "0") {
    pos.innerHTML=text;
    pos.style.left = s+name.offsetLeft;
    pos.style.top  = o+name.offsetTop;
    pos_an.style.top  = 40+link2.offsetTop;
    fox = "1"
    }

} else {
    pos.style.left = -10000;
    pos.style.top  = 0;
    pos_an.style.top  = link2.offsetTop-40;
    fox = "0"
}
}

//-->
</script>
<div id="link" style="position:absolute;top:0px;left:0px;" onclick="position

(this,link,10,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position

(0);\'>zurück</span>');">Hallo</div>

<div id="link2" style="position:absolute;top:100px;left:0px;" onclick="position

(this,link2,100,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position

(0);\'>zurück</span>');">Hallo</div>



<div id="box" style="position:absolute;top:0px;left:0px;"></div>


</body>

</html>


dann tuts, aber eben nur für einen, deswegen habe ich es oben ja gegen eine Varriable ausgetauscht. Nur irgendwie will das nicht, wo ist mein Fehler?
 
Hallo
Ich lerne immer mehr und komme auch immer weiter. Nur jetzt habe ich schon wieder ein Problem.
Auf der seite sollen Boxen zu sehen sein(bisher sinds nur diese "Hallo"s, weils ja nur test ist) dort drin soll dann ein Button "Details" sein(auch dieser hallo). Wenn man jetzt dort draufklickt, sollen die boxen unter dem gedrückten nach unten fahren und sich eine neue dazwischenschieben.
wenn ich meinen code
PHP:
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
var fox ="0"
function position(obj,name,an,s,o,text) {
pos=document.getElementById("box");
if(obj) {
    if(fox == "0") {
    pos.innerHTML=text;
    pos.style.left = s+name.offsetLeft;
    pos.style.top  = o+name.offsetTop;
    an.style.top = an.offsetTop+40;
    fox = "1"
 
    }

} else {
    pos.style.left = -10000;
    pos.style.top  = 0;
    fox = "0";


}
}
function pos_an(f) {
f.style.top = f.offsetTop-40;
}
    

//-->
</script>
<div id="l1" style="position:absolute;top:0px;left:0px;" onclick="position(this,l1,l2,10,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position(0); pos_an(l2);\'>zurück</span>');">Hallo</div>

<div id="l2" style="position:absolute;top:100px;left:0px;" onclick="position(this,l2,l3,100,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position(0); pos_an(l2);\'>zurück</span>');">Hallo</div>

<div id="l3" style="position:absolute;top:200px;left:0px;" onclick="position(this,l3,l4,100,10,'<span style=\'position:absolute;top:0px;left:0px;\' onclick=\'position(0); pos_an(l2);\'>zurück</span>');">Hallo</div>



<div id="box" style="position:absolute;top:0px;left:0px;"></div>


</body>

</html>
verwende, dann schiebt sich natürlich nur die erste box, unter der gedrücken, nach unten. D.h. eine box überlappt sich dann mit der anderen
Wie könnte ich dies lösen?
 
Zurück
Oben