2012-04-05 13 views
0

Ich habe diesen Code:Wie kann man wissen, welches Element geklickt wurde

(function() { 
    var i, ii, e = Elements.Select('.drop'); 
    for (i = 0, ii = e.length; i < ii; i++) { 
    e [ i ].onclick = function() { 
     alert (e [ i ].getAttribute('data-open')); 
    } 
    } 
})(); 

Was ich tue, ist, dass, wenn ein Element mit dem ‚drop‘ classname klicken, dann das Attribut des Elements aufmerksam wurde ich klicken. Aber funktioniert nicht.

Dieser Codeabschnitt ist derjenige, den ich benutze, um ein Element nach ihrem Klassennamen auszuwählen. Achten Sie nicht sehr darauf, es ist nur zu zeigen, wie ich die Elemente auswähle.

(function() { 
    Select : function (element) { 
    var object, index = element.substr(0, 1), name = element.substr(1, element.length),  clases = [ ], i, all = document.body.getElementsByTagName("*"); 
    switch (index) { 
    case '.' : 
     for (i = 0; i < all.length; i ++) { 
     if (all [ i ].className == name) { 
      clases.push(all [ i ]); 
     } 
     } 
     object = clases; 
    break; 
    return object 
    } 
    } 
})(); 

¿Antworten?

+0

Versuchen lesbaren Code zu schreiben – Raynos

+0

nicht lesbar ist? :/ –

+0

Es lässt meine Augen bluten – Raynos

Antwort

2
(function() { 
    var i, ii, e = Elements.Select('.drop'); 
    for (i = 0, ii = e.length; i < ii; i++) { 
    e [ i ].onclick = function() { 
     //by the time that this gets executed, the for loop is ended, thus i equals ii 
     // instead of using e[i]... try using this : 
     alert (this.getAttribute('data-open')); 
     alert (e [ i ].getAttribute('data-open')); 
    } 
    } 
})(); 
+0

Bist du Chuck Norris? ? oder Gott? HAHA, vielen Dank (: –

0

Sie können jquery dafür verwenden. Hier gibt Ihnen das Schlüsselwort 'this' das aktuelle Element, auf das geklickt wurde. Diese Funktion wird für das click -Ereignis eines Elements ausgelöst, dessen Klassenname "drop" lautet.

$(".drop").click(function(){ 
    var x=$(this).attr("data-open"); 
}); 
+0

Kannst du mir helfen, ohne JQuery? –

+0

Ich bin nicht 100% sicher, dass meine Methode, dies in Javascript zu tun, funktionieren wird, aber versuchen werde, Ihnen eine Lösung zu geben, die genau das auch verwendet .. –

+2

Der obige Code wird nicht sogar mit jQuery ausgeführt. Benutze entweder POJS 'this.getAttribute ('data-open')' oder mit jQuery '$ (this) .attr ('data-open')' – RobG

Verwandte Themen