2012-04-05 4 views
0

J'ai ce code:Comment savoir quel élément a été cliqué

(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')); 
    } 
    } 
})(); 

Ce que je fais est que lorsque vous cliquez sur un élément avec la « goutte » className, puis alerte l'attribut de l'élément que je cliquant dessus. Mais ça ne marche pas.

ce morceau de code est celui que j'utilise pour sélectionner un élément par son nom de classe. Ne faites pas trop attention, il suffit de nous montrer juste pour leur montrer comment je sélectionne les éléments.

(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 
    } 
    } 
})(); 

¿Réponses?

+0

Essayez d'écrire un code lisible – Raynos

+0

n'est pas lisible? :/ –

+0

Il fait saigner les yeux – Raynos

Répondre

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

Êtes-vous Chuck Norris? ? ou Dieu? HAHA, merci beaucoup (: –

0

Vous pouvez utiliser jquery pour cela. Ici, le mot clé 'this' vous donne l'élément en cours sur lequel vous avez cliqué. Cette fonction est déclenchée sur l'événement click de tout élément dont le nom de classe est 'drop'.

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

Pouvez-vous m'aider avec JQuery? –

+0

Je ne suis pas sûr à 100% que ma méthode de faire ceci en Javascript fonctionnera, mais essayera de te donner une solution using juste cela aussi .. –

+2

Le code ci-dessus ne fonctionnera pas même avec jQuery. Utilisez POJS 'this.getAttribute ('data-open')' ou avec jQuery '$ (this) .attr ('data-open')' – RobG

Questions connexes