Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.06.2011, 14:38
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Как заменить буквы в слове правильнее
Доброго времени. По нажатии на картинку, она должна поменяться. Точнее, должен смениться ее src.

Как это правильнее сделать в jquery?
В js есть replace(), а в jquery я его не нашел. Только replaceWith или replaceAll. Что можете посоветовать?

Нужно: images/img1.png поменять на images/imgh2.png
Ответить с цитированием
  #2 (permalink)  
Старый 07.06.2011, 14:50
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Пробовал
$(this).attr('src').replace(/img/, 'imgh');
$(this).attr('src').replace('img', 'imgh');


Ничего не работает..
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2011, 14:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

this.src = 'images/imgh2.png';
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2011, 14:59
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Сообщение от Kolyaj Посмотреть сообщение
this.src = 'images/imgh2.png';
Это конечно понятно. Но у меня 40 картинок и src у всех разные. Надо заменить именно одну часть только.
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2011, 15:05
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Все, разобрался сам, спасибо. Надо было в переменную загнать значение.
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2011, 15:13
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Ну вот теперь более сложная задача. При нажатии на картинку, она должна меняться. Но при нажатии на другую картинку, предыдущая должна стать оригинальной. Стандартный эффект переключения кнопок.
Можно сделать через siblings(), но боюсь, что комп будет считать очень долго. Нет никаких решений с "предыдущей" картинкой или как-то еще?
Ответить с цитированием
  #7 (permalink)  
Старый 07.06.2011, 16:50
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
$(function() {
   $('img').click(function() {
      var precedent = $('img.current');
      precedent.attr('src', precedent.attr('original'));
      precedent.removeClass('current');
      $(this).addClass('current').attr('original', $(this).attr('src')).attr('src', 'http://javascript.ru/forum/images/smilies/laugh.gif');
   });
});
</script>
<style>
img {
   cursor: pointer;margin-right: 20px;
}
</style>
</head>
<body>
<img src="http://javascript.ru/forum/images/smilies/smile.gif" />
<img src="http://javascript.ru/forum/images/smilies/unsure.gif" />
<img src="http://javascript.ru/forum/images/smilies/tongue.gif" />
<img src="http://javascript.ru/forum/images/smilies/agree.gif" />
<img src="http://javascript.ru/forum/images/smilies/dance3.gif" />
</body>
</html>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #8 (permalink)  
Старый 07.06.2011, 17:06
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Walik, спасибо! Но опять не то. Нужно каждой картинке делать при нажатии уникальную вторую картинку. Т.е. общее колво картинок all*2

Сделал так. Картинки были pay_doX.png и pay_dolX.png
$(paySystemId+' img').click( function() {
   $(paySystemId+' img').each(function () {
      var hoverImg = $(this).attr('src').replace(/pay_dol/g, 'pay_do');
      $(this).attr('src',hoverImg);
   });
   var hoverImgThis = $(this).attr('src').replace(/pay_do/g, 'pay_dol');
   $(this).attr('src',hoverImgThis);
});


Везде кроме оперы более менее сносно работает. В опере подтормаживает. Там 40 картинок. Но как сделать проще - не придумал.

Последний раз редактировалось shaltay, 07.06.2011 в 17:08.
Ответить с цитированием
  #9 (permalink)  
Старый 07.06.2011, 17:42
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
$(function() {
   $('img').click(function() {
      var precedent = $('img.current');
      precedent.attr('src', precedent.attr('original'));
      precedent.removeClass('current');
      $(this).addClass('current').attr('original', $(this).attr('src')).attr('src', $(this).attr('hover'));
   });
});
</script>
<style>
img {
   cursor: pointer;margin-right: 20px;
}
</style>
</head>
<body>
<img src="http://javascript.ru/forum/images/smilies/smile.gif" hover="http://javascript.ru/forum/images/smilies/sad.gif" />
<img src="http://javascript.ru/forum/images/smilies/unsure.gif" hover="http://javascript.ru/forum/images/smilies/thank_you2.gif" />
<img src="http://javascript.ru/forum/images/smilies/tongue.gif" hover="http://javascript.ru/forum/images/smilies/wink.gif" />
<img src="http://javascript.ru/forum/images/smilies/agree.gif" hover="http://javascript.ru/forum/images/smilies/yes4.gif" />
<img src="http://javascript.ru/forum/images/smilies/dance3.gif" hover="http://javascript.ru/forum/images/smilies/mad.gif" />
</body>
</html>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #10 (permalink)  
Старый 07.06.2011, 18:36
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Спасибо Большое!
Скажите, что значит var precedent = $('img.current'); ?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы русские буквы не вводились в определенные поля формы? yachainik Общие вопросы Javascript 6 13.02.2017 16:43
DOM vs iframe. Как в ифрейме заменить выделенный текст (его innerHTML)? Бухалыч Events/DOM/Window 4 20.08.2009 14:30
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как заменить эл-ты одного списка эл-тами другого ? Mayar Элементы интерфейса 5 28.04.2009 11:21
Как правильнее? Рикка (X)HTML/CSS 8 09.10.2007 09:30