Помогите по JS. Упарился с document.onclick и target

R
На сайте с 17.11.2011
Offline
22
4742

Оно работает.

Но.

Назначил documentу onclick=fff;

fff(e){

top.document.title=e.target;

или

top.document.title=e.target.nodeName;

}

все работает и все показывает.

И даже если

e.target.style.color='red';

то закрасит то по чему кликнули.

Но этого еще недостаточно.

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

Как это сделать, кто-то может подсказать?

По идее должен быть же какой-то или индекс или что-то другое, идентифицирующее тэги.:idea:

домашняя страница - google.com.ua
R
На сайте с 17.11.2011
Offline
22
#1

Единственное, что накопал, это getElementsByTagName.

Возвращает массив элементов, но как найти, какой индекс у элемента, по которому кликнули, неизвестно.

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

ДП
На сайте с 23.11.2009
Offline
203
#2

У вас у e.target хранится DomElement, запоминайте его и используйте. Это аналогично, если бы вы сделали el = document.getElemebtById(); или el = e.target;

R
На сайте с 17.11.2011
Offline
22
#3
Дикий пионер:
У вас у e.target хранится DomElement, запоминайте его и используйте. Это аналогично, если бы вы сделали el = document.getElemebtById();

e.DomElement

e.DomElement.ToString()

e.target.nodeName.DomElement()

e.target.nodeName.DomElement.ToString()

e.target.DomElement.ToString()

e.target.DomElement()

выдает undefined (opera)

И вообще, что-то в сети про это не упоминается.

или el = e.target;

Это — выдает общий objectHTMLElement, с которым непонятно что делать.

Ну да ладно, сделал кое-какой финт ушами, и сейчас получается, даже есть нету id и name.

Хотя вопрос все равно остается открытым.

palladin_jedi
На сайте с 13.07.2010
Offline
71
#4

А если при клике на объект добавлять data="clicked"?

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
ДП
На сайте с 23.11.2009
Offline
203
#5

А посмотрите еще, чему у вас внутри функции равен this.

R
На сайте с 17.11.2011
Offline
22
#6
Дикий пионер:
А посмотрите еще, чему у вас внутри функции равен this.

[object HTMLDocument]

в опере во всяком случае, так.

ДП
На сайте с 23.11.2009
Offline
203
#7

Я, конечно, целей ваших наработток не знаю, но в jQuery, например.

$('a').bind('click',function(e){

$(this) // будет давать элемент (точнее его jquery-скую обертку), по которому кликнули.

});

R
На сайте с 17.11.2011
Offline
22
#8

не, спасибо, jquery к сожалению не подходит.

Great-Antique
На сайте с 21.08.2010
Offline
16
#9

Ваш [object HTMLDocument] - это и есть идентификатор.

тоесть вы можете сделать так

var my_element = null;

fff(e){

my_element=e.target;

}

И теперь можете работать с my_element. Т.е. к примеру

my_element.style.color = 'red';

Пишу небольшие PHP-скрипты бесплатно. Главное, чтобы интересно было. Блог о PHP-разработке (http://den.girnyk.com) и не только.
R
На сайте с 17.11.2011
Offline
22
#10
Great-Antique:
Ваш [object HTMLDocument] - это и есть идентификатор.
тоесть вы можете сделать так

var my_element = null;
fff(e){
my_element=e.target;
}

И теперь можете работать с my_element. Т.е. к примеру
my_element.style.color = 'red';

не сомневаюсь, кагбы. 😂

но:

"Нужно каким-то образом идентифицировать кликнутый объект, чтобы к нему можно было обратиться уже без клика по документу. Id и name у этих ообъектов нету."

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий