Как прикрепить событие к тегу (например IMG)?

12
R
На сайте с 17.11.2011
Offline
22
1367

вот пример forums.kuban.ru/showthread.php?t=1491021

там ниже картинки, при клике картинка увеличивается/уменьшается.

Что характерно, пока картинка не догрузится, онклик не сработает.

В свойствах картинок события онклик нет.

Нашел его только в одном из js (и то не его а упоминание о нем), но там много кода и не разберешся толком.

Как так можно приатачить событие к тегу? Хотя бы намекните в какую сторону копать.

домашняя страница - google.com.ua
ДП
На сайте с 23.11.2009
Offline
203
#1

attachEvent

addEventListener

jQuery.bind()

копать в эту сторону

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

Нашел примеры, но там токо конкретно к объектам, а нужно к тэгу.

Получается, к тэгу неьлзя?

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

Вообще если на jQuery - то так должно получиться $('img').bind('click',function(){});

Ну или если img могут динамически добавляться - то $('img').live('click',function(){});

Там для увеличения производительности еще контект можно задать, если например, надо только в картинкам в определенном контейнере назначить обработчик.

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

Да нет. jQuery не подходит.

Хотелось бы чисто через css (если это возможно) и/или JS.

Наверное, прийдется рекурсивно пройтись по элементам.

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

Насколько я понимаю, через css - вряд ли. А так тот же jQuery, я думаю, примерно так и делает.

Еще, кроме прохода по всем элементам, может стоит повесить обработчик клика на body, а в обработчике смотреть на event.target - если картинка, то делать то, что нужно.

R
На сайте с 17.11.2011
Offline
22
#6
Дикий пионер:
Насколько я понимаю, через css - вряд ли. А так тот же jQuery, я думаю, примерно так и делает.
Еще, кроме прохода по всем элементам, может стоит повесить обработчик клика на body, а в обработчике смотреть на event.target - если картинка, то делать то, что нужно.

Может так даже лучше.

Оно будет во всех браузерах работать?

А то как-то сталкивался, в одном это "е", в другом "event", а в третьем вообще непонятно что.

V
На сайте с 05.01.2011
Offline
23
#7

ну css точно здесь не причем , если это только не ховер, а в чем проблема с jquery . кросбраузерность в js тоже не маловажно

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

разве jquery работает во всех браузерах?

Наскоко знаю, это надстройка JS

[Удален]
#9
rommer:
разве jquery работает во всех браузерах?
Наскоко знаю, это надстройка JS

а что js не во всех браузерах работает?

(ну совсем древние в не считаем)

V
На сайте с 05.01.2011
Offline
23
#10
burunduk:
а что js не во всех браузерах работает?
(ну совсем древние в не считаем)

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

12

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