Конечно, с удовольствием. Стеснялся попросить .
Основывается все на суфиксах или префиксах имен файлов Я решил, что нагляднее будет с суфиксами.
1.Вот с регами. Прелесть: полностью независит от id (и их повторений), расширений файлов и наличия одинаковых картинок на странице. Условие, чтоб у картинок совпадали расширения (!! jpge и jpg не пойдет)| Код | function regChange(elem) { if (/1\.\w{2,4}$/.test(elem.src)) { elem.src=elem.src.replace(/1\.(\w{2,4})$/,"2.$1"); } else { if(/2\.\w{2,4}$/.test(elem.src)) {elem.src=elem.src.replace(/2\.(\w{2,4})$/,"1.$1") } else {alert("Ошибка, однако!\n\nВебмастеру сообщи, да?")// мой каприз, кудаж без него } }} |
2.Вот изврат без регов с конкатенацией, но зато, полезно-позновательный. Ограничения: id должно совпадать с именем файла без суфикса или префикса (здесь без суфикса) и работать можно только с к-либо одним расширением (здесь gif). Также если несколько картинок с одинаковым id, то может потребоваться повторный клик (из-за того, что для одинаковых id создаются одинаковые переменные-счетчики). Посвещается: яро ненавидящим реги (а зря). Особые благодарности: Sardar, за знания, без которых ентоб не прокатило| Код | function regCounter(elem){ window[elem.id]; var p=window[elem.id].tostring;/* ввел, т.к. не помню я как window[elem.id] проверить на undefined, ругается, мол "[object]". Поправте!!! */
if (p!=undefined||window[elem.id]==2){ window[elem.id]=1;elem.src=elem.id+"1.gif" } else{window[elem.id]=2;elem.src=elem.id+"2.gif" }} |
И, конечно для ленивых| Код | <html> </head> <script language="JavaScript" type="text/JavaScript">
</script> <body> <img src="pic1.gif" onClick="regChange(this)"><br><br> <img src="pic1.gif" onClick="regChange(this)"><br><br><br>
<img src="pic1.gif" id="pic" onClick="regCounter(this)"><br><br> <img src="pic1.gif" id="pic" onClick="regCounter(this)"> </body> </html> |
Интересно будет не только картинки менять...
А теперь судите! |