Разделение массива
Случай не самый сложный как я понимаю, но своими мозгами дойти не могу.
Существует форма на сайте. В ней при селекте изменяются изображения на сайте. Под один селект настроил без проблем, со вторым начались проблемы Вот код: pictures = new Array() for(i=0;i<5;i++) { pictures[i] = new Image() if(i==0) pictures[i].src = "./images/shapka01.png" if(i==1) pictures[i].src = "./images/shapka02.png" if(i==2) pictures[i].src = "./images/shapka03.png" if(i==3) pictures[i].src = "./images/shapka04.png" if(i==4) pictures[i].src = "./images/shapka05.png" } function l_image() { document.shapka.src = pictures[document.form1.item.selectedIndex].src } pictures = new Array() for(j=0;j<5;j++) { pictures[j] = new Image() if(j==0) pictures[j].src = "./images/sharf01.png" if(j==1) pictures[j].src = "./images/sharf02.png" if(j==2) pictures[j].src = "./images/sharf03.png" if(j==3) pictures[j].src = "./images/sharf04.png" if(j==4) pictures[j].src = "./images/sharf05.png" } function r_image() { document.sharf.src = pictures[document.form1.item.selectedIndex].src } А это сама форма селектора: <img src="images/formpole-1.png" class="left" /><select name=item onChange=l_image()> <option selected="selected">Шапка 1 <option>Шапка 2 <option>Шапка 3 <option>Шапка 4 <option>Шапка 5 </select><img src="images/formpole-2.png" class="left" /><br /> <img src="images/formpole-1.png" class="left" /><select name=item onChange=r_image()> <option selected="selected">Коричн. "Bersar" <option>Синий шарф <option>Черный "Звездочка" <option>Черный "Bersar" <option>Коричн. "Звездочка" </select><img src="images/formpole-2.png" class="left" /> |
masterfrag,
2 селекта 2 массива !!! а не 1 на 2 |
for(i=0;i<5;i++) { pictures[i] = new Image() if(i==0) pictures[i].src = "./images/shapka01.png" if(i==1) pictures[i].src = "./images/shapka02.png" if(i==2) pictures[i].src = "./images/shapka03.png" if(i==3) pictures[i].src = "./images/shapka04.png" if(i==4) pictures[i].src = "./images/shapka05.png" } Мда.. И как ты до такого докатился? Думаю этому кода дорога сюда: http://govnokod.ru/ |
Подробнее можно?
Как мне сделать так, что бы код работал? Цитата:
|
Обиделась лялечка.. ути пути..ну не плачь, все будет хорошо.
Приношу свои глубочайшие извинения если Вас так задело мое высказывание по поводу «качества» Вашего кода и указание его места. |
Цитата:
Я лишь пытался исправить так, как нужно мне и сейчас незнаю что мне делать дальше. Потому и спрашиваю |
Если у тя не хватает ума как спросить чтобы объяснили что не так с кодом, так и быть, прощаю.
var pictures = [ "./images/shapka01.png", "./images/shapka02.png", "./images/shapka03.png", "./images/shapka04.png", "./images/shapka05.png" ]; for (var i = 0; i < pictures.length; i++) { var image = new Image(); image.src = pictures[i]; } Но я бы хранил пути к картинкам в data-* атрибуте. |
Если сходу, то я бы сделал примерно так (при желании можно легко добавить третий селект, четвертый, ..., сотый):
<!DOCTYPE html> <img id="hat-image" /> <select id="hat-select"> <option selected="selected" value="http://javascript.ru/forum/images/smilies/smile.gif">Шапка 1</option> <option value="http://javascript.ru/forum/images/smilies/mad.gif">Шапка 2</option> <option value="http://javascript.ru/forum/images/smilies/laugh.gif">Шапка 3</option> </select> <img id="scarf-image" /> <select id="scarf-select"> <option selected="selected" value="http://javascript.ru/forum/images/smilies/yes4.gif">Синий шарф</option> <option value="http://javascript.ru/forum/images/smilies/agree.gif">Черный "Звездочка"</option> </select> <script> (function(){ var selects = ['hat', 'scarf']; for (var i = 0; i < selects.length; i++) { var select = document.getElementById(selects[i] + '-select'); var image = document.getElementById(selects[i] + '-image'); bind(select, image); preload(select); } function bind(select, image) { select.onchange = function() { image.src = this.value; }; select.onchange(); } function preload(options) { for (var i = 0; i < options.length; i++) { new Image().src = options.value; } } })() </script> |
danik.js,
Спасибо. Очень помог |
Часовой пояс GMT +3, время: 04:15. |