Lieber Dominik,
will ich auch hier learning by doing: Ich will das Skript so erweitern, dass manche Bilder verlinkt sind.
sehr ehrenwert!
Mein Ansatz:
// werbung verlinken
this.link[0] = document.createElement("a");
this.link[0].href = "http://schwarzwald-logistik.de/";
this.link[0].title = "SL-Logistik";
Ich denke da eher an einen init-Aufruf dieser Art:
[code lang=javascript]FaderFramework.init({
id: ...,
images: ["erstesBild.jpg", "zweitesBild.jpg"],
hrefs: ["http://erste-werbung.example.org", "http://zweite-werbung.example.org"],
titles: ["Werbung1", "Werbung2"],
random: true
});
Damit hast Du dann in jedem this.inits[?] ein Objekt mit den üblichen Zutaten PLUS eben Deiner Linkziele samt Titel.
~~~javascript
var a;
for (i = 0; i < einstellungen.images.length; i++) {
a = document.createElement("a");
a.href = einstellungen.hrefs[i];
a.title = einstellungen.titles[i];
img = document.createElement("img");
img.src = einstellungen.images[i];
img.alt = einstellungen.titles[i];
if (i > 0) {
img.className = "next";
img.style.opacity = "0";
// IE?
img.style.filter = "alpha(opacity=0)";
}
a.appendChild(img);
this.element.appendChild(a);
}
Da wäre dann eigentlich eine andere Objektverschachtelung sinnvoller (weil übersichtlicher und robuster):
FaderFramework.init({
id: ...,
ads : [
{
image: "erstes-bild.jpg",
href: "http://erste-werbung.example.org/",
title: "Erstes Werbebanner"
},
{
image: "zweites-bild.jpg",
href: "http://zweite-werbung.example.org/",
title: "Zweites Werbebanner"
}
],
random: true
});
Jedoch müsste man dann den Konstruktor wesentlich umbauen, denn es wird jede Werbung als ein eigenes Objekt (bestehend aus Bild-URL, Link-URL und Titel) übertragen. Das wäre dann so:
var a;
for (i = 0; i < einstellungen.ads.length; i++) {
a = document.createElement("a");
a.href = einstellungen.ads[i].href;
a.title = einstellungen.ads[i].title;
img = document.createElement("img");
img.src = einstellungen.ads[i].image;
img.alt = einstellungen.ads[i].title;
if (i > 0) {
img.className = "next";
img.style.opacity = "0";
// IE?
img.style.filter = "alpha(opacity=0)";
}
a.appendChild(img);
this.element.appendChild(a);
}
Firefox gibt eine kryptische Fehlermeldung zurück und bricht das Skript ab.
<sarkasmus>Gewöhne Dir bitte garnicht erst an, solche wichtigen Fehlermeldungen zu beachten, und poste sie um Himmels Willen hier auf garkeinen Fall! Das nervt und hilft nicht weiter!</sarkasmus>
;-)
Liebe Grüße,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)