Подмена ссылки изображения и возврат на исходное
Здравствуйте! Нужна помощь, знания JS плачевные :)
Имеется простенький скрипт замены изображения при клике на ссылку <script type="text/javascript"> function l_image (b,a) { document.getElementById(b).src=a; } </script> <img src="img_1.png" id="layer_1"></br> <a href="javascript:l_image('layer_1','img_2.png')">Заменить</a> Подскажите пожалуйста, как доработать скрипт, чтобы при повторном нажатии изображение изменялось на изначальное? |
REDiRECT72,
<script type="text/javascript"> function l_image(a, b) { a = document.getElementById(a); var c = a.dataset.src || b; a.dataset.src = c == b ? a.src : ""; a.src = c }; </script> <img src="http://2.bp.blogspot.com/-u1FR4Lms-F0/T3Fe686C8kI/AAAAAAAAAWg/NzQmVkK0fwc/s400/mice.png" id="layer_1"></br> <a href="javascript:l_image('layer_1','http://www.creaturecarer.co.uk/0_0_0_0_250_241_library_74311.png?u=551485338')">Заменить</a> |
Благодарю за быстрый ответ! Решение почти верное, но ошибка моя, не упомянул некоторые условия. Опишу принцип действия, имеется список картинок в модальном окне, само окно вызывается по щелчку на основную картинку. При клике на картинку из списка она становится активной (присваивается дополнительный класс с рамкой - например "active") и её ссылка на изображение копируется на место основного изображения.
Получается, что Ваш вариант работает только с единичным элементом, но если их несколько? Так же обратил внимание, что при быстром двойном нажатии скрипт не успевает обрабатываться и срабатывает только один раз. Структура примерно такая: <script type="text/javascript"> function l_image (b,a) { document.getElementById(b).src=a; } </script> <img src="img_1.png" id="layer_1"></br> <img src="img_2.png" id="layer_2"></br> <a href="javascript:l_image('layer_1','img_1.png')">red</a> <a href="javascript:l_image('layer_1','img_2.png')">green</a> <a href="javascript:l_image('layer_1','img_3.png')">blue</a> <a href="javascript:l_image('layer_2','img_2.png')">magenta</a> <a href="javascript:l_image('layer_2','img_3.png')">yellow</a> <a href="javascript:l_image('layer_2','img_4.png')">black</a> |
И не могли бы Вы дать комментарии к коду? Хотелось бы вникнуть :)
|
REDiRECT72,
без коментариев ... function l_image(a, b) { a = document.getElementById(a); var c = a.dataset.src || (a.dataset.src=a.getAttribute('src')); a.src = a.getAttribute('src') == b ? c : b }; |
Огромное спасибо! Теперь всё работает как надо :)
|
Часовой пояс GMT +3, время: 03:24. |