2014-02-13 6 views
-5

У меня возникли проблемы с этим кодом, я тестировал его в Интернете, но он, похоже, не работает. Это все мое кодирование:
Почему этот javascript не работает?

Мой HTML:

<img src="kruisje.jpg" id="image1"> 

И сценарий, который должен сделать это слайд-шоу, но это не так:

var img = document.getElementById("image1").src; 
     function changeimage(){ 
      wait(10) 
      for(var i = 0; i < images.length; i++){ 
       return img 
      } 
     } 
     var images = ["","","","","",""] 

И я знаю, что ссылки в массив не заполнен, но у меня есть ссылки для него. Это просто снимки, поэтому вы можете заполнить любой URL-адрес, который вы хотите, если вы его тестируете.

Может ли кто-нибудь сказать мне, что я делаю неправильно в этом коде?

+6

В JavaScript нет функции 'wait'. –

+1

'changeimage' никогда не выполняется. – deceze

ответ

4
  1. В зависимости от когда вы запустите его, document.getElementById("image1") может возвращать элемент или null. Если он вернется null, скрипт будет ошибочен при попытке получить доступ к свойству src и прервать его.
  2. Вы никогда не называете функцию changeimage
  3. В JavaScript нет функции wait и, похоже, она не указана.
  4. Вы return img, поэтому выход из функции в первый раз, когда вы идете вокруг петли
  5. Если вы хотите назначить новый URL, чтобы img тогда вы бы просто присваивая URL в переменную. img будет переменной, содержащей строку. Он не будет ссылаться на свойство src.

Если вы хотите это сделать, вам необходимо полностью изменить свой подход.

// Get a reference to the element (make sure you run this *after* the image has been added to the DOM) 
var img = document.getElementById("image1"); 

// Track where you are in the array 
var imagesIndex = 0; 
var images = ["","","","","",""] 

function changeImage(){ 
    // Assign the new URL to the src property of the image 
    img.src = images[imagesIndex]; 
    // Increment the index here 
    imageIndex++; 
    // Check if it has gone off the end and reset it if it has 
    if (imageIndex >= images.length) { 
     imageIndex = 0; 
    } 
} 

// Call the function on your time period 
setInterval(changeImage, 10000); 
-2
var img = document.getElementById("image1").src; 
     function changeimage(){ 
      wait(10) // ERROR FUNCTION 
      setTimeout(function(){alert("Hello")},3000); 
      for(var i = 0; i < images.length; i++){ 
       return img 
      } 
     } 
     var images = ["","","","","",""] 

вам нужно использовать SetTimeout (функция() {Alert ("Hello")}, 3000);

+0

setTimeout, а не setInterval – R3tep

Смежные вопросы