Hey,
heute habe ich ein sehr komplexes Problem:
Ich bin gerade dran ein kleines Framework für das iPhone zu programmieren, Css ist garkein Problem, geht alles doch die Umsetzung mit dem JavaScript geht noch nicht so ganz.
Das ganze sieht wie folgt aus:
Am Anfang sind alle Divs 'hidden', nur das Div mit der id 'home' wird per JS sichtbar gemacht. Wenn nun ein User in einer Liste auf ein Bereich draufdrückt, startet eine Funktion, welche vom gedrückten Div die Parameter 'id' und 'title' ausliest. Die 'id' sagt, welches Div versteckt werden soll, also das aktuelle und 'title' sagt, welches nun erscheinen soll. Das ganze funktioniert perfekt. Aber: Da die 'list'-divs in einem Div names 'listview' sind und eigentlich das übergeordnete Div versteckt werden soll (eigentlich würde die das Script ja dann den Listeneintrag verstecken) rufe ich mit 'parentNode' die id des 'listview' ab und setzte die id von allen Listenelementen eben auf die id des übergeordneten Divs(da ja das Script die id wissen will um es zu verstecken). Das funktioniert aber nur, wenn ich eine Liste habe. Bei einer zweiten nimmt das Script die id des ersten übergeordneten Divs und setzt sie nun im ganzen Code ein, aber eigentlich sollte es ja nur für die List-Elemente des 'listview's gelten. Wie mache ich es, dass das Script die id nur in 'listview' verwendet und z.B. bei 'listview2' die id nimmt und alle List-Elemente in 'listview2' mit dieser id bestückt?
Hier der JavaScript-Code:
Hier der HTML-Code:
heute habe ich ein sehr komplexes Problem:
Ich bin gerade dran ein kleines Framework für das iPhone zu programmieren, Css ist garkein Problem, geht alles doch die Umsetzung mit dem JavaScript geht noch nicht so ganz.
Das ganze sieht wie folgt aus:
Am Anfang sind alle Divs 'hidden', nur das Div mit der id 'home' wird per JS sichtbar gemacht. Wenn nun ein User in einer Liste auf ein Bereich draufdrückt, startet eine Funktion, welche vom gedrückten Div die Parameter 'id' und 'title' ausliest. Die 'id' sagt, welches Div versteckt werden soll, also das aktuelle und 'title' sagt, welches nun erscheinen soll. Das ganze funktioniert perfekt. Aber: Da die 'list'-divs in einem Div names 'listview' sind und eigentlich das übergeordnete Div versteckt werden soll (eigentlich würde die das Script ja dann den Listeneintrag verstecken) rufe ich mit 'parentNode' die id des 'listview' ab und setzte die id von allen Listenelementen eben auf die id des übergeordneten Divs(da ja das Script die id wissen will um es zu verstecken). Das funktioniert aber nur, wenn ich eine Liste habe. Bei einer zweiten nimmt das Script die id des ersten übergeordneten Divs und setzt sie nun im ganzen Code ein, aber eigentlich sollte es ja nur für die List-Elemente des 'listview's gelten. Wie mache ich es, dass das Script die id nur in 'listview' verwendet und z.B. bei 'listview2' die id nimmt und alle List-Elemente in 'listview2' mit dieser id bestückt?
Hier der JavaScript-Code:
HTML:
function setonclick(){
if(document.getElementsByClassName('whiteitem').length !== 0){
var whiteitem = document.getElementsByClassName('whiteitem');
var whiteitemparent = whiteitem[0].parentNode.id;
for(i=0;i<whiteitem.length;i++) {
whiteitem[i].onclick = function(){
goto(this);
};
whiteitem[i].id = whiteitemparent;
} }
if(document.getElementsByClassName('grayitem').length !== 0){
var grayitem = document.getElementsByClassName('grayitem');
var grayitemparent = grayitem[0].parentNode.id;
for(i=0;i<grayitem.length;i++) {
grayitem[i].onclick = function(){
goto(this);
};
grayitem[i].id = grayitemparent;
} }
if(document.getElementsByClassName('blackitem').length !== 0){
var blackitem = document.getElementsByClassName('blackitem');
var blackitemparent = blackitem[0].parentNode.id;
for(i=0;i<blackitem.length;i++) {
blackitem[i].onclick = function(){
goto(this);
};
blackitem[i].id = blackitemparent;
} }
}
function goto(node){
var div = node.id;
var change = node.title;
var title = node.title;
document.getElementById('puffer').title = title;
document.getElementById(div).style.visibility = 'hidden';
document.getElementById(change).style.visibility = 'visible';
}
HTML:
<div class="contentview">
<div class="listview" id="home" name="Home">
<div class="whiteitem" title="store">
Store
</div>
<div class="grayitem" title="testhome">
Hallo2
</div>
<div class="blackitem">
Hallo3
</div>
</div>
<div class="listview" id="testhome" name="Liste2">
<div class="whiteitem" title="podcast">
Halalaoa
</div>
<div class="grayitem">
Halalaoa
</div>
<div class="blackitem">
Halalaoa
</div>
</div>
<div class="storeview" id="store">
<div class="grayitem" title="home">
<img src="bilder/programme.png" alt="Limetlogo" />
</div>
<div class="blackitem">
<img src="bilder/programme.png" alt="Limetlogo" />
</div>
<div class="blackitem">
<img src="bilder/programme.png" alt="Limetlogo" />
</div>
</div>
</div>