2012-04-05 4 views
0

У меня есть этот код:Как узнать, какой элемент был щелкнул

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

Что я делаю, что при нажатии элемента с Classname «капли», то предупредит атрибут элемента я щелкал. Но не работает.

Этот кусок кода является тем, который я использую для выбора элемента по ее имени класса. Не обращайте особого внимания, только показать нам только, чтобы показать им, как я выбираю элементы.

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

¿Ответы?

+0

Попробуйте писать читаемый код – Raynos

+0

не читается? :/ –

+0

Это заставляет мои глаза кровоточить – Raynos

ответ

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

Вы Чак Норрис ? или Бог? HAHA, спасибо большое (: –

0

Вы можете использовать jquery для этого. Вот, ключевое слово 'this' дает вам текущий элемент, который был нажат. Эта функция запускается при событии щелчка любого элемента, чье имя класса «drop».

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

Можете ли вы помочь мне с JQuery? –

+0

Я не уверен на 100%, что мой способ сделать это в Javascript будет работать, но попытаюсь дать вам решение, используя именно это. –

+2

Вышеприведенный код не будет работать даже с jQuery. Или используйте POJS 'this.getAttribute ('data-open')' или с помощью jQuery '$ (this) .attr ('data-open')' – RobG

Смежные вопросы