2016-03-22 7 views
0

どうしたらいいですか?問題は、2番目のスライドショーを追加すると1番目のスライドショーが機能しなくなり、2番目のスライドショーの画像を変更するためにクリックされたときに最初のスライドショーが行われることです。これは初めてのJavaScriptです。両方のスライドショーが自分の上で動作し、私はそれを調べ、ラインdocument.Lunch.srcを異なる名前に変更しました。私はまた、このライン関数のslideshow()を関数slideshow1()と関数slideshow2()に変更して両方のスクリプトが動作するかどうかを確認しようとしましたが、私は喜んでいません。私はこの質問が以前に尋ねられたことを理解しています。すべての似たような疑問を抱いていますが、2年前と3年前の回答はありません。どんな助けでも大歓迎です。ここで私は1つのページに2つのシンプルなjavascriptスライドショーを持っていますが、2番目のものは最初のものを停止します。

は、あなたの基本的な問題を再定義するものの一つである私のコード

<SCRIPT type="text/javascript"> 
     var num = 1 
     img1 = new Image() 
     img1.src = "Lunch2.jpg" 
     img2 = new Image() 
     img2.src = "Lunch.jpg" 

    function slideshow() 
     { 
      num = num + 1 

      if (num == 3) 
      {num = 1} 

     document.Lunch.src=eval("img"+num+".src") 
     } 
</SCRIPT> 

<SCRIPT type="text/javascript"> 
     var num = 1 
     img1 = new Image() 
     img1.src = "Mail.jpg" 
     img2 = new Image() 
     img2.src = "Mail2.jpg" 

     function slideshow() 
      { 
       num = num + 1 

       if (num == 3) 
       {num = 1} 

      document.Mail.src=eval("img"+num+".src") 
      } 
</SCRIPT> 
</head> 

、ここ

<IMG SRC = "Lunch2.jpg" NAME = "Lunch" BORDER = 3 alt = ""> 
    <p></p> 
    <A HREF="JavaScript:slideshow()">Click for next picture</A> 

    <IMG SRC = "Mail.jpg" NAME = "Mail" BORDER = 3 alt = ""> 
    <p></p> 
    <A HREF="JavaScript:slideshow()">Click for next picture</A> 

答えて

1

です。 slideshow関数のネームスペースはないので、2番目の関数を定義すると、最初のものが置き換えられます。

したがって、同じslideshowメソッドを呼び出す2つのリンクで終了します。 2番目の定義には、そのメソッドがdocument.Mailのソースを置き換えるので、それが起こります。

かなりのスライドショーを作成したい場合は、任意の数のフレームワークを使用してスライドショーを行う方法を調べることで最も効果的です。私はブートストラップがまだ普及していると信じています。 hereを参照してください。

JavaScriptの関数と変数の名前空間の詳細については、こちらをご覧ください。私は、javascriptのチュートリアルをお勧めしたいと思います。私はこれのための提案をすぐに持っていない。

+0

何が間違っているか教えていただきありがとうございます。私はあなたのアドバイスとあなたが提供したリンクを感謝します。ブートストラップチュートリアルはかなりシンプルです。私はそれを試して、私がどのように乗っていくのか見ていきます。ありがとう、100万人の友人。 – BigBoss04772

関連する問題