Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться с javascript: OnClick и смена картинок
 
 автор: Dark_Goblin   (07.01.2008 в 23:37)   письмо автору
 
 

Помогите пожалуйста...
Вот код:

<html> 
<head> 
<title>...</title>

<SCRIPT LANGUAGE="javascript"> 
<!-- 
function setpic(tov,img,price)   
  {  
    document.getElementById('img').src=img;  
    document.getElementById('price').innerText=price;  
  } 
function ChangeImg() 
  { 
   if(document.images) 
    { 
     eval("document."+ChangeImg.arguments[0]+".src=('"+ChangeImg.arguments[1]+"')"); 
    } 
  } 
function preload() 
  { 
   if(document.images) 
    {  
     var imgsrc = preload.arguments; 
     arr=new Array(imgsrc.length); 
     for (var j=0; j<imgsrc.length; j++) 
     { arr[j] = new Image; arr[j].src = imgsrc[j]; } 
    } 
  } 
// --> 
</SCRIPT> 

 </head> 

<body onLoad="preload('image/but1_1.gif', 'image/but2_2.gif'')"> 

<table width="900" border="0" cellspacing="0" cellpadding="0" align="center">  
<tr>  
<td width="300" height="300" id="price">цена 30</td>  
<td width="600" height="300"><img id="img" src="image/pic.jpg" width="600" height="300"></td>  
</tr>  
</table>  
<table width="900" border="0" cellspacing="0" cellpadding="0" align="center">  
<tr>  

<td width="300" height="100"><a href="#" onclick="setpic('tovar1','image/pic2.gif','цена 50');false;" onMouseOver="ChangeImg('image1','image/but1_1.gif')" onMouseOut="ChangeImg('image1','image/but1.gif')"><img src="image/but1.gif" NAME="image1" width="300" height="100"></a></td>

<td width="300" height="100"><a href="#" onclick="setpic('tovar2','image/pic3.gif','цена 60');false;" onMouseOver="ChangeImg('image2','image/but2_2.gif')" onMouseOut="ChangeImg('image2','image/but2.gif')"><img src="image/but2.gif" NAME="image2" width="300" height="100"></a></td>

.........


Так вот, картинка и цена меняется при щелчке на товаре. Чтобы это не пропадало, просто указал href="#"

Первое:
меня интересует следующее, как сделать все это без <a href="#"></a>,
так как они используются не по прямому назначению.

Второе:
как заставить картинку, которая выводится при наведении на нее мышкой, после щелчка остаться такой же. То есть у меня список товаров -это уменьшенные изображения, когда навожу мышкой они подсвечиваются, так вот после щелчка это подсветочка и должна остаться, пока не щелкну на другом товаре.

   
 
 автор: sim5   (08.01.2008 в 02:46)   письмо автору
 
   для: Dark_Goblin   (07.01.2008 в 23:37)
 

Просто перенесите все события из якоря в изображение, а якоря удалите. Если нужно сохранить "ручку" курсора, то добавьте соответсвующий стиль для изображения: STYLE="cursor: pointer;"

   
 
 автор: Dark_Goblin   (08.01.2008 в 03:33)   письмо автору
 
   для: sim5   (08.01.2008 в 02:46)
 

Спасибо большое, а как насчет второго вопроса? не поможете?

   
 
 автор: Dark_Goblin   (08.01.2008 в 04:21)   письмо автору
 
   для: Dark_Goblin   (08.01.2008 в 03:33)
 

Попытался прикрутить к onclick еще одну функцию, такую же как и предыдущую, но только с другими параметрами/
Так она почему то отказывается работать, у первого товара из списка после щелчка оставляет подсвеченное изображение, а когда щелкаешь на втором товаре, она меняет изображение не у него, а опять же у первого (но уже на подсвеченное изображение второго).

   
 
 автор: sim5   (08.01.2008 в 05:26)   письмо автору
 
   для: Dark_Goblin   (08.01.2008 в 04:21)
 

Да можно конечно устроить, чтобы события ONMOUSEOVER, ONMOUSEOUT, были зависимы от ONCLICK, можно и функций "прикрутить", но может вам изначально нужно подумать о другом варианте? Ведь мало вероятно, что у вас два товара на странице, а больше, и значит то решение которое у вас, ну как бы сказать - неоптимальное. Возможно надо будет передавать больше параметров о товаре, не только цену, тогда как? Кстати зачем в функцию передавать "цена 50"? Достаточно просто 50, а "цена" дописывать в окно.
Если малые изображения, это уменьшенные копии больших изображений товаров, то зачем смена этих картинок при наведении мыши?

   
 
 автор: Dark_Goblin   (08.01.2008 в 06:10)   письмо автору
 
   для: sim5   (08.01.2008 в 05:26)
 

Отвечу по порядку :) :
1. Первое что хочу сказать, так это то, что в самом дизайне по большей части присутствуют нарисованные элементы, чем текстовые. Так что много текста там нет, и не предвидится вроде как. Проще говоря, на странице: пять товаров (это уменьшенные картинки); одно большое изображение (показывает выбранный товар в большом варианте); и три текстовых параметра.
2.Кстати зачем в функцию передавать "цена 50"? Достаточно просто 50
Да я так и не делаю, не настолько я туп-тупнем :) просто в примере указал, чтобы проще было ориентироваться.
3.Если малые изображения, это уменьшенные копии больших изображений товаров, то зачем смена этих картинок при наведении мыши?
Ну здесь от меня ничего не зависит - дизайнер нарисовал, мое дело сверстать. Он просто проработал такой вариант, что бы при наведении мышкой, появлялось тоже самое уменьшенное изображение, но оно становится выпуклым и приобретает золотистый оттенок. Так что с этим ничего не поделать.

P.S.: так что одна задача осталась, как сделать так, чтобы при клике мышкой по уменьшенному изображению (то есть по картинке из списка товаров), она оставалась во втором варианте, пока не будет выбран другой товар.
P.S.: заранее всех благодарю, просто прошурстил это форум и заметил, что здесь реально люди помогают, а не отсылают куда подальше.

   
 
 автор: Blanzh   (10.01.2008 в 17:03)   письмо автору
 
   для: sim5   (08.01.2008 в 02:46)
 

соответсвующий стиль для изображения: STYLE="cursor: pointer;"

или cursor:hand... в зависимости от браузера

   
 
 автор: Dark_Goblin   (11.01.2008 в 15:32)   письмо автору
 
   для: Blanzh   (10.01.2008 в 17:03)
 

Blanzh
Это ты к чему? :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования