Как узнать папку, с которой загрузилась картинка?
Привет всем!
не знаю, отвечаете ли вы по Jquery, ведь сайт по javascript, но все же... есть простой скрипт: $('a.menu').hover( function() { //при наведении курсора: id = $(this).attr('id'); num = id.replace(/menu(\d+)/gi, '$1'); //выделяем порядковый номер меню $('#img'+num).attr('src', 'img/menu/'+num+'.png'); }, function() { //при уходе курсора с области реагирования hover: id = $(this).attr('id'); num = id.replace(/menu(\d+)/gi, '$1'); if ($(this).hasClass('site_active')) return false; //если объекту соответствует класс 'site_active', обратно картинку не меняем. $('#img'+num).attr('src', 'img/menu/menu'+num+'.png'); //возвращаем предыдущую картинку } ); суть: у каждого объекта меню есть пара картинок: например: menu1.png - по дефолту и 1.png - для события hover тоже самое планирую сделать для других ссылок, вне меню. Вопрос: как автоматически вычислять вот эту вот часть: " 'img/menu/ " ? то есть, мне надо, шобэ скрипт мог сам узнать из какой папки загрузилась картинка? Смысл: как многие наверное знают Осел 6 не отрабатывает события OnMouseOver и OnMouseOut для тега <img>. скрипт обходит эту ошибку, но на сайте достаточно картинок, которые меняются по наведению, расположены в разных папках (в зависимости от принадлежности), и имеют соответственно разные классы для ссылок, не только class='menu' (а.menu). хоцца: менять все картинки ОДНИМ скриптом. заранее спасибо! |
Цитата:
Цитата:
|
Цитата:
|
Чуть не забыл - последний элемент в полученном массиве будет названием изображения (с расширением).
|
Народ, спасибо!
блин, так все просто.... |
ребят, вообщем наваял я нечто вот такое:
$('img[id]').hover(function(){ //ну или $('img[class]') src=$(this).attr('src'); srcArray=src.split('/'); nameArray=srcArray[srcArray.length-1].split('.'); name=nameArray[0]; type=nameArray[1]; dir=''; for (i = 0; i < srcArray.length-1; i++){ dir = dir+srcArray[i]+'/'; } $(this).attr('src', dir+name+'_hover.'+type); }, function() { src=$(this).attr('src'); srcArray=src.split('/'); nameArray=srcArray[srcArray.length-1].split('.'); name=nameArray[0]; type=nameArray[1]; dir=''; for (i = 0; i < srcArray.length-1; i++){ dir = dir+srcArray[i]+'/'; } name = name.replace(/_hover/gi, ''); $(this).attr('src', dir+name+'.'+type); } ); обязательная пара картинок: дефаулт: картинка.тип (ну там jpg,gif пох как) hover: картинка_hover.тип вроде все норм, но есть ощущение, что процедуру можно как то проще сделать... может есть идеи? |
Если есть ощущение, то должны быть и идеи)
|
В плане оптимизации я не особо силен, но тут умных людей много, наверняка помогут)
|
Le-mark43,
как-то у вас сложно получается если я правильно понял то у вас src примерно такая строка 'img/menu/picture.gif' а при наведении мыши 'img/menu/picture_hover.gif' может быть просто при наведении получаем src картинки и делаем замену src.replace('.', '_hover.') а при уходе мыши получаем src и делаем замену src.replace('_hover.', '.') ?? |
)))))))))))))
серьезно, так значительно проще!!! ну чо... будем учится мыслить попростецки! Спасибо! кстати, при таком варианте точку в имя файла уже не вставишь, ну будем надеяться, что никто картинку с таким именем не подсунет... |
Часовой пояс GMT +3, время: 14:09. |