versuch13
Erfahrenes Mitglied
Hi, ich will mich etwas mehr mit JavaScript beschäftigen, richtig tief in die Materie gehen, OOP etc.. (dazu hätte ich direkt auch gerne noch einen Tipp für richtig gute Lektüre, es soll auf jeden Fall sehr ausführlich sein, am besten alles ansprechen was JavaScript zu bieten hat, und das in einem guten Programmierstil, wenn möglich auf deutsch, aber ich bin für jeden Tipp dankbar, Bücher, Webseiten, Blogs, einfach alles)
Daher hab ich mich hingesetzt und das ganze angefangen in die Praxis umzusetzen.
Erst einfach mal das Script:
Bei Klick auf einen Definition Term wird die dazugehörige Description eingeblendet. Das ganze funktioniert auch bestens in Firefox & Opera, nur der IE macht nicht mit. Zu Anfang werden alle dd Elemente ausgeblendet und bei onclick auf das vorherige dt Element eingeblendet. Im IE allerdings wird von anfang an nur das erste dt und das alle dd Element angezeigt. Wäre nett wenn mir dazu jemand einen Tipp oder eine Lösung hätte.
Vielen Dank. Grüße
Daher hab ich mich hingesetzt und das ganze angefangen in die Praxis umzusetzen.
Erst einfach mal das Script:
Code:
Element = {
/* Element.setStyle('element', {options}) */
setStyle: function(e, options) {
e.style.color = options.color;
e.style.fontSize = options.fontSize;
e.style.background = options.bgColor;
e.style.padding = options.padding;
e.style.margin = options.margin;
e.style.display = options.display;
e.style.fontWeight = options.fontWeight;
},
/* Element.toggle('element') */
toggle: function(e) {
if (e.style.display != 'none') {
e.style.display = 'none';
} else {
e.style.display = '';
}
},
/* Element.hide('element') */
hide: function(e) {
if (e.style.display != 'none') {
e.style.display = 'none';
}
}
}
kollabieren = function(id) {
var toggler = document.getElementById('deflist').getElementsByTagName('dt');
for(var i=0; i < toggler.length; i++) {
var e = (toggler)[i];
Element.hide(e.nextSibling.nextSibling);
e.onclick = function() {
for(var i=0; i < toggler.length; i++) {
var e = (toggler)[i];
Element.setStyle(e, {color: ''});
Element.hide(e.nextSibling.nextSibling);
}
Element.setStyle(this, {color: '#FF0000'});
Element.toggle(this.nextSibling.nextSibling);
}
}
}
window.onload = function() {
kollabieren();
}
HTML:
<dl id="deflist">
<dt>Definition Term 1</dt>
<dd>Description. Description. Description. Description. Description. Description. </dd>
<dt>Definition Term 2</dt>
<dd>Description. Description. Description. Description. Description. Description. </dd>
<dt>Definition Term 3</dt>
<dd>Description. Description. Description. Description. Description. Description. </dd>
</dl>
Bei Klick auf einen Definition Term wird die dazugehörige Description eingeblendet. Das ganze funktioniert auch bestens in Firefox & Opera, nur der IE macht nicht mit. Zu Anfang werden alle dd Elemente ausgeblendet und bei onclick auf das vorherige dt Element eingeblendet. Im IE allerdings wird von anfang an nur das erste dt und das alle dd Element angezeigt. Wäre nett wenn mir dazu jemand einen Tipp oder eine Lösung hätte.
Vielen Dank. Grüße
Zuletzt bearbeitet: