Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Картинка, связанная с ссылкой (https://javascript.ru/forum/jquery/35955-kartinka-svyazannaya-s-ssylkojj.html)

Artyom K 27.02.2013 16:46

Картинка, связанная с ссылкой
 
Всем доброго времени суток,

Есть картинка и ссылка
<img src="img.png">
<a href="#" data-reveal-id="myModal">Click here</a>

Ссылка ведет к библиотеке JQuery. При нажатии по ней плавно выдвигается модальное окно.

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

Это было бесполезно
<a href="#" data-reveal-id="myModal"><img src="img.png"></a>

И при корректировке в JQuery тоже
$('img[src*=img.png]').live...;
$('a img[src*=img.png]').live...;

Код такой
$('a[data-reveal-id]').live('click', function(e) {
e.preventDefault();
var modalLocation = $(this).attr('data-reveal-id');
$('#'+modalLocation).reveal($(this).data());
});
и т.д.

Я озадачен, прошу помощи.

P.S. Можно ли каким-нибудь способом связать картинку с ссылкой через тот же JQuery? Вроде нажимаешь на картинку, а открывается невидимая ссылка.

Ну или...

Serg_pnz 27.02.2013 17:21

Попробуй так

<img data-reveal-id="myModal" src="img.png">
$('img[data-reveal-id]').live('click', function(e) {
...


upd:
И вообще, если дописывать везде data-reveal-id="bla-bla", то можно ограничиться
$('[data-reveal-id]').live('click', function(e) {

Artyom K 27.02.2013 17:26

Так тоже делал. Не выходит. Оно и понятно.

$('img[data-reveal-id]').live('click', function(e) {
e.preventDefault();
var modalLocation = $(this).attr('data-reveal-id');
$('#'+modalLocation).reveal($(this).data());
});

Код для картинки некорректен

Serg_pnz 27.02.2013 17:27

Artyom K,
ты в самой картинке прописал?
<img data-reveal-id="myModal" src="img.png">

Serg_pnz 27.02.2013 17:28

http://learn.javascript.ru/play/ESofG - всё работает, кликай по картинке или ссылке

Artyom K 27.02.2013 18:20

http://learn.javascript.ru/play/CE38kb
кинул весь скрипт, так легче

Видимо, причина в live, с on у меня тоже работало
...$('[data-reveal-id]').on...

Serg_pnz 27.02.2013 20:03

Artyom K,
епт, так гладиолус!
$('a[data-reveal-id]').live('click', function(e) {
а - лишнее!
http://learn.javascript.ru/play/fd0Fg

Serg_pnz 27.02.2013 20:04

кстати on ввели с 1.7, а ты вроде 1.6 используешь (лениво разбираться детально)

Artyom K 27.02.2013 20:28

Чёрт, всё было намного проще. Про a всё ясно, дело было и не в этом.
У меня был ещё один глубокий косяк. Я для одной картинки сразу две функции требовал: открытие модального окна и разворот текста снизу. Я думал, что можно использовать несколько функций.

Ладно, спасибо.

Serg_pnz 27.02.2013 20:33

Можно, юзай что-то типа bind
http://jquery.page2page.ru/index.php...82%D0%B8%D0%B9


Часовой пояс GMT +3, время: 23:04.