Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2012, 10:52
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

Как узнать папку, с которой загрузилась картинка?
Привет всем!
не знаю, отвечаете ли вы по 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).
хоцца:
менять все картинки ОДНИМ скриптом.
заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2012, 12:45
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от Le-mark43
не знаю, отвечаете ли вы по Jquery, ведь сайт по javascript, но все же...
jquery уже не javascript ?

Сообщение от Le-mark43
как автоматически вычислять вот эту вот часть: " 'img/menu/ " ?
сделайте $('#img'+num).attr('src'); - получите адрес картинки
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2012, 14:04
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Цитата:
сделайте $('#img'+num).attr('src'); - получите адрес картинки
А потом делай split по символу '/' и выделяй папки)
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2012, 14:05
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Чуть не забыл - последний элемент в полученном массиве будет названием изображения (с расширением).
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2012, 15:38
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

Народ, спасибо!
блин, так все просто....
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2012, 21:35
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

ребят, вообщем наваял я нечто вот такое:

$('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, 10.04.2012 в 21:39.
Ответить с цитированием
  #7 (permalink)  
Старый 10.04.2012, 22:37
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Если есть ощущение, то должны быть и идеи)
Ответить с цитированием
  #8 (permalink)  
Старый 11.04.2012, 09:38
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

В плане оптимизации я не особо силен, но тут умных людей много, наверняка помогут)
Ответить с цитированием
  #9 (permalink)  
Старый 11.04.2012, 10:38
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Le-mark43,
как-то у вас сложно получается
если я правильно понял то у вас src примерно такая строка 'img/menu/picture.gif'
а при наведении мыши 'img/menu/picture_hover.gif'

может быть просто при наведении получаем src картинки
и делаем замену src.replace('.', '_hover.')

а при уходе мыши
получаем src и делаем замену src.replace('_hover.', '.')

??
Ответить с цитированием
  #10 (permalink)  
Старый 14.04.2012, 22:18
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

)))))))))))))
серьезно, так значительно проще!!!
ну чо... будем учится мыслить попростецки!
Спасибо!
кстати, при таком варианте точку в имя файла уже не вставишь, ну будем надеяться, что никто картинку с таким именем не подсунет...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать какой скрипт вызывается при клике по эленету (если это прямо не прописано) Dmitriy Komar Events/DOM/Window 4 08.12.2011 17:21
Массивы. Как узнать ключ, зная значение? jsuse Общие вопросы Javascript 4 24.11.2011 19:03
Как узнать подключен ли JavaScript у пользователя? frost18 Элементы интерфейса 1 26.10.2011 17:16
Как узнать размер загружаемого файла? shkarbatov Серверные языки и технологии 5 14.08.2011 17:12
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21