проблема с функцией javascript - PullRequest
0 голосов
/ 28 марта 2011

мне нужна еще одна вещь

у меня есть

function show_image()
{
  document.write("<img src="+this.link+" ,alt="+this.alt+" ,width=600, height=400>");
}

function image(a,b,c)
{
  this.link=a;
  this.alt=b;
  this.thumb=c;
  this.zobraz=show_image;
}

image1=new image("img/img1.jpg","info image 1","thumb/img1");
image2=new image("img/img2.jpg","info image 2","thumb/img2");

и сейчас я пытаюсь сделать что-то вроде этого:

function slideshow()
{
var i=1;
      while(i<3)
{
      document.write(image[i].zobraz());
i++
}
}

я незнаю почему, но это [я] не работает.Где моя ошибка?спасибо

Ответы [ 4 ]

1 голос
/ 28 марта 2011

Вы должны использовать массив, чтобы иметь возможность индексировать, используя []:

// create array to hold images
var images = [];

// load images and store them in the array
images.push(new image(...));
images.push(new image(...));

// .. now subscripting using [] works fine now
var i=0;
while(i<3)
{
   document.write(images[i].zobraz());
   i++
}

ПРИМЕЧАНИЕ Индексы массива начинаются с нуля, то есть первая запись имеет индекс 0!

0 голосов
/ 28 марта 2011

В дополнение к бизнесу с массивами, указанному в других ответах, вы все еще делаете что-то неловкое:

document.write( image[i].zobraz() );

Если вы расширите вызов zobraz, вы увидите, что он не 'на самом деле ничего не вернуть.Было бы лучше либо сделать zobraz return строкой "img", либо просто кодировать image[i].zobraz();

0 голосов
/ 28 марта 2011

Вы пытаетесь сослаться на image1 и image2, как если бы они были элементами массива.

Вместо

image1=new image("img/img1.jpg","info image 1","thumb/img1");
image2=new image("img/img2.jpg","info image 2","thumb/img2");

Попробуйте это:

var image = [];
image[1] = new image("img/img1.jpg","info image 1","thumb/img1");
image[2] = new image("img/img2.jpg","info image 2","thumb/img2");

Теперь ваша функция slideshow() должна работать так, как вы ее написали.

0 голосов
/ 28 марта 2011

Вы на самом деле не создали массив.

Попробуйте:

var image = [];
image[0]=new image("img/img1.jpg","info image 1","thumb/img1");
image[1]=new image("img/img2.jpg","info image 2","thumb/img2");

и настройте цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...