Willkommen in der Webstatt Zum Webstatt Blog und Stories
Wasili am 29.08.06 20:33

Naja... Ich versuche wieder mal was per JS zu machen. Das Bild soll, ja nach klick, grösser oder kleiner werden.
Die Fehlermeldung, die mir Moz ausspuckt, ist "GetElementById is not a function", die entsprechenden Zeilen im HTML-Code sind:

<img id='Avatar-1' alt='Dein Avatar' src='./images/user-images/thumb-1.jpg' onClick='ChangePic(this.src)' />
<script type="text/javascript">

function ChangePic(src) {
var thumb = '';
var ava = '';
var acctid = 0;
var imgtag = '';
ava = './images/user-images/avatar-1.jpg';
thumb = './images/user-images/thumb-1.jpg';
acctid = 1;

if(src == ava) {
document.GetElementById('Avatar-'+acctid).src = thumb;
}
else {
document.GetElementById('Avatar-'+acctid).src = ava;
}
}
</script>
<noscript>

</noscript>


Irgendwer ne Idee warums nicht geht..? ^^"

netcup.de Warum gibt es hier Werbung?
Franky Franky am 29.08.06 20:37

klein schreiben?
also so: getElementById()

Michael Michael am 29.08.06 20:40

Das hilft meisstens :)
Sicherheitshalber lohnt es auch, abzufragen ob es das Element gibt, ansonsten bricht das JS nämlich komplett ab.

Und natürlich object literal ;)

/me ist ein object literal fanboy

Wasili am 29.08.06 21:03

Ah... Das doofe g. Okay. Vergrössern geht nun. Danke.
Nur verkleinern geht net... Beim klick darauf kommt immer "switch to ava", auch wenn der Avatar bereits angezeigt wird.

<img id='Avatar-1' alt='Dein Avatar' src='./images/user-images/thumb-1.jpg' onClick='ChangePic(this.src)' />
<script type="text/javascript">

function ChangePic(src) {
var thumb = '';
var ava = '';
var acctid = 0;
var imgtag = '';
ava = './images/user-images/avatar-1.jpg';
thumb = './images/user-images/thumb-1.jpg';
acctid = 1;

if(src == ava) {
document.getElementById('Avatar-'+acctid).src = thumb;
alert('Switch to thumb'); // Only for debug
}
else {
document.getElementById('Avatar-'+acctid).src = ava;
alert('Switch to ava'); // Only for debug
}

}
</script>
<noscript>

</noscript>


Ich hoffe doch schon wieder irgendein doofer Fehler... :) Zumindest sind die Strings identisch. Daran müsste es nicht liegen.


@ Michael: Das Element gibt es immer. Es sei den, der Browser verschluckt was oder mein PHP SCript macht was falsch... ;)

Michael Michael am 29.08.06 21:10

was steht denn in src drin? Ist das vielleicht das ganze Bild und nicht nur der Pfad? Kannst es dir ja einfach mal mit alert(src); ausgeben lassen.

Auch wenn es das immer gibt kostet ja nichts


var element = document.getElementById('Avatar-'+acctid);
if(element) {
if(src == ava) {
element.src = thumb;
alert('Switch to thumb'); // Only for debug
} else {
element.src = ava;
alert('Switch to ava'); // Only for debug
}
}

Wasili am 29.08.06 21:34

Ah.... Daran hab ich noch nicht gedacht. Autsch.
Ja, in der Tat. src ist "http://localhost/motew/images/user-images/avatar-1.jpg" oO


Habs aber nun gelöst. Wenn auch mit einem Trick... *grinst*
Ich missbrauche einfach das alt-Attribut dafür ;)

<img id='Avatar-1' alt='Dein Avatar (thumbnail)' src='./images/user-images/thumb-1.jpg' onClick='ChangePic(this.alt)' />

<script type="text/javascript">
function ChangePic(alt) {
var acctid = 1;
var element = document.getElementById('Avatar-'+acctid);
var ava = './images/user-images/avatar-1.jpg';
var thumb = './images/user-images/thumb-1.jpg';

if(element) {
if(alt == "Dein Avatar") {
element.src = thumb;
element.alt = "Dein Avatar (thumbnail)";
//alert('Switch to thumb'); // Only debug
}
else {
element.src = ava;
element.alt = "Dein Avatar";
//alert('Switch to ava'); // Only debug
}
}
}
</script>

<noscript>

</noscript>


// PHP-Code war hier falsch... Nun ists der richtige.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt