• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

prototype div observe

Status
Für weitere Antworten geschlossen.

krackmoe

Neues Mitglied
Hab mehrere solcher Divs mit fortlaufender ID:
PHP:
<div id="item0" onclick="setVideo(this.id); Element.show('trailerBox'); setClass(this);" class="resultItem">                
                    <h2>Sieben Leben offizieller Trailer</h2>
                    <img src="http://img.youtube.com/vi/L-uE8-cxkrg/2.jpg" id="resultItemImg0" />
                    <p><b class="infoT">Dauer: </b>10min</p>
                    <p><b class="infoT">Sprache: </b>Deutsch</p>
                </div>
Das ist mein Javascript Teil:

Code:
<script type="text/javascript">
                function setVideo(x){                    
                    var index;                    
                    if(x.length == 5){
                        index = x.substring(4,x.length);
                    }
                    else if(x.length > 5){
                        index = x.substring(4,x.length);
                    }
                    var imgId = 'resultItemImg'+index;
                    $(imgId).observe('click',function(){
                        alert(index);
                    });                    
                }
                
            
                
                function setClass(x){                    
                    Element.addClassName(x,'_active');
                    var items = document.getElementById('trailerItems');
                    var count = items.getElementsByTagName("div");
                    for(var i=0; i < count.length; i++){
                        if(count[i].id != x.id){
                            Element.removeClassName(count[i],'_active');
                        }
                    }                    
                }
            </script>
Wenn ichd as erste Mal auf ein div draufklicke passiert gar nichts..
Wenn ich das zweite mal draufdrücke zeigt er mir den index an.
Beim dritten Mal draufdrücken zeigt er mir den index 2 mal an...
usw..

Warum ist das so!?
 
Du kannst die Variabel index nicht konservieren - sie hat immer den Wert, des letzten Aufrufs. Es gibt mehrere Möglichkeiten dies zu umgehen, in deinem Fall würde ich aber einfach auf die ID zugreifen.

Code:
    $(imgId).observe('click',function(){
        alert(this.id);
    });
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben