[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как узнать какой выбран элемент
gudzik
есть у меня куча элементов с одинаковым класом

если кликнуть по элементу с этим класом то должна сработать некая функция и что-то там сделать...
если есть только один елемент с таким класом то работает все отлично, но если их больше то траблы...

	more = document.querySelectorAll( '.more' );


вижу, что создаю некий NоdeList из елементов, но как узнать что клик был именно по этому элементу а не по другому никак не могу вдуплить

помогите...

спасибо!
sergeiss
Цитата (gudzik @ 19.04.2015 - 16:55)
но как узнать что клик был именно по этому элементу а не по другому никак не могу вдуплить

В обработчик клика по элементу у тебя есть "this" - указатель на выбранный элемент. Если, конечно, ты вообще повесил такой обработчик smile.gif

Цитата (gudzik @ 19.04.2015 - 16:55)
если кликнуть по элементу с этим класом то должна сработать некая функция

Покажи, как именно ты обрабатываешь это вот "кликнуть по элементу".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
gudzik
вот обработчик

	more.addEventListener(eventtype, function(){
modal = $(this).attr("data-modal");

});
sergeiss
Так вот это $(this) и выбирает как раз текущий элемент, по которому был сделан клик :) И более того, у тебя в переменную modal записывается содержимое атрибута "data-modal" из этого элемента. Похоже, что ты используешь jQuery... Поэтому лучше будет тут написать
modal = $(this).data('modal'); // это будет более правильно

И ты можешь использовать этот же подход для получения любых других данных о выбранном (кликнутом) объекте.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
gudzik
вот нагуглил такое

var forEach = function (array, callback, scope) {
for (var i = 0; i < array.length; i++) {
callback.call(scope, i, array[i]); // passes back stuff we need
}
}
;

var myNodeList = document.querySelectorAll('.more');
forEach(myNodeList, function (index, value) {
more[index].addEventListener(eventtype, function(){
modal = $(this).attr("data-modal");
console.log(modal);
});
});


работает, но не знаю на сколько это правильно... и нет ли чего проще
gudzik
sergeiss

что-то я наверное туплю ибо у меня код

	more = document.querySelectorAll( '.more' );

more.addEventListener("click", function(){

}
);


выдает ошыбку
gudzik
понял, может...

нужно брать

$(more).click(function() {

}
);


а не

more.addEventListener("click", function(){

}
);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.