01.02.2010, 20:19
|
Новичок на форуме
|
|
Регистрация: 01.02.2010
Сообщений: 8
|
|
Я знаю html и css - надеюсь, на -4; сталкиваясь по ходу дела с js поднатыркался количественно настраивать скрипты под свои нужды, но вот суть, "душу" языка никак не могу ухватить; может у меня совершенно апрограммистские мозги.Теперь по сути:
html-файл с <img src="1.jpg" onclick="this.src=(this.src=='1.jpg')?'2.jpg':'1.j pg'" /> лежит у меня на локальной машине в одной папке с jpgами - как тут прописать абсолютный путь?
Я так понимаю задачу:
<img src="1.jpg" onclick="this.src='2.jpg'" onclick="вот как сюда впихнуть отмену предыдущего (onclick="this.src='2.jpg'") события и возврат к отображению исходного 1.jpg" />???
|
|
01.02.2010, 20:49
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
<img src="1.jpg" onclick="this.src=(/\/1\.jpg$/i.test(this.src))?'2.jpg':'1.jpg'" />
|
|
01.02.2010, 21:50
|
Новичок на форуме
|
|
Регистрация: 01.02.2010
Сообщений: 8
|
|
Спасибо огромное, PeaceCoder, работает! (Профессор - он и есть профессор!)
А можно попросить объяснить происходящее? Посимвольно, если не трудно.
|
|
01.02.2010, 22:17
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
я заменил проверку пути на регулярное выражение
/\/1\.jpg$/i
, которое просто проверяет тоже this.src=='1.jpg', только что бы оно было не точно равно, а необходимое содержалось в конце пути, т.к. он будет чтото типа http://ваш.домен/путь/к/странице/1.jpg, выделенную часть я и проверял
|
|
01.02.2010, 22:47
|
Новичок на форуме
|
|
Регистрация: 01.02.2010
Сообщений: 8
|
|
Что-то забрезжило: собака покоилась в правильном указании пути. Общение с компетентными людьми продвигает быстрее, чем чтение самых удачных книг, - лишь бы это было не в тягость этим самым компетентным людям.
Это я к тому, что что в варианте, который надо было усовершенствовать (согласитесь, мелькание, связанное с onmouseover-onmouseout может раздражать пользователя, ибо действие это ему малоподконтрольно - всё происходит как бы само собой, ибо просто движение мышью чисто психологически не воспринимается за элемент управления), так вот, - в варианте
<img src="1.jpg" onmouseover="this.src='2.jpg'" onmouseout="this.src='1.jpg'" />
было ещё весьма необходимое дополнение:
<h4 id="one">A</h4>
<img src="1.jpg" onmouseover="this.src='2.jpg'; document.getElementById('one').innerHTML='B" onmouseout="this.src='1.jpg';document.getElementBy Id('one').innerHTML='A'" />
Можно ли "прикрутить" этот document.getElementById('one').innerHTML='..."
к варианту
<img src="1.jpg" onclick="this.src=(/\/1\.jpg$/i.test(this.src))?'2.jpg':'1.jpg'" />
P.S. Кстати, а что дают slashs /\? Я их для интереса убрал, а всё равно всё работает
|
|
01.02.2010, 23:07
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от duron
|
P.S. Кстати, а что дают slashs /\? Я их для интереса убрал, а всё равно всё работает
|
это уже подробно надо читать что такое регулярные выражение и их синтаксис. в частности первый и последний / обозначают границы регулярного выражения, а внутри \/ и \. обозначают экранирование, которое будет сравниваться как / и . ,т.к. если не экранировать то эти символы будут считаться завершением рег.выражения и любой симовол.
А на счет прикрутить не получится. т.к. смена у тебя идет на 2 разных действия мыши, и соединить в одно к сожалению, не выйдет.
|
|
02.02.2010, 07:11
|
Новичок на форуме
|
|
Регистрация: 01.02.2010
Сообщений: 8
|
|
А вот ещё похожий и тоже рабочий пример:
<img src="1.jpg" onclick="this.src=(this.src.match(/1\.jpg$/))? 2.jpg':'1.jpg';" />
т.е. я так понимаю - один и тот же результат в js можно получать различным путями.
А что даёт двоеточие в конце записи - между '2.jpg':'1.jpg' ?
|
|
02.02.2010, 14:49
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Выше я описал что такое знак ? и дал ссылку. прочтите и все поймете.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
|
|
02.02.2010, 15:10
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,576
|
|
Мысли вслух:
Как то некошерно такую кодинку запихивать в теги вообще то .
Последний раз редактировалось micscr, 02.02.2010 в 15:32.
|
|
05.02.2010, 14:46
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
micscr,
|
|
|
|