2016-05-07 12 views
0

ボタンをクリックしたときにのみ実行するように変更すると、指定したタグの画像を変更するjavascriptループがありますが、何もしません。ボタンとJavaScriptを使用してhtml imgタグの画像を変更する

javascriptのコード:

<script type="text/javascript"> 
    var step = 1 
    var image1 = new Image() 
    image1.src = "img1.jpg" 
    var image2 = new Image() 
    image2.src = "img2.jpg" 
    var image3 = new Image() 
    image3.src = "img3.jpg" 
    function slideit() { 
     if (!document.images) return 

     document.images.slide.src=eval("images"+step+".src") 

     if (step < 3) 
      step++ 
     else 
      step=1 
    } 

    //--> 
</script> 

ボタンコード: <input type="button" name="btnnext" value="Next Picture" onclick="slideit" />

私はonclick="slideit()"に変更しようとしたが、それは

"キャッチされないにReferenceError:images1が定義されていない" と述べ

私はここからどこに行くのか分からない、どんな助けもありがとう。

+1

変数名がimage1 image2などであるため、 'no' –

+1

あなたのslideIt関数が機能する必要があります.evalを使用する理由はありません。 srcが常に "img" + step + ".jpg"の場合、srcを取得するためだけに新しいDomエレメントを作成するのではなく、このパターンを使用することができます – Damon

答えて

0
  1. それは(私は考えていない)window.images1window.images2またはwindow.images3としてあなたのコードでこのような変数がありますeval('images1.src')とにしようとしているので、あなたがUncaught ReferenceError: images1 is not definedを取得している理由はonclick='slideit()'

  2. する必要があります。あなたはおそらく代わりに欲しい

arraysrcのSを定義し、次にsrcsArray[step]を取得し、あなたのdocument.images.slideのためのあなたの新しいsrcとしてそれを使用することです。

@ patrick-evansが言ったように、おそらくevaleval('image' + step + '.src')に変更して修正することができます。

こちらがお役に立てば幸いです。

+0

ありがとうございました。奇妙なのは、それがループしているときにコードを壊したからです。 他のセクションでは、もっと安定しているように、私は配列を使います。 おかげで再び! –

関連する問題