2017-07-19 5 views
0

ここでは、JavaScriptについてのヘルプが必要です。 私はギャラリー、ループを持っているとギャラリーの画像をクリックするたびに、クリックされた画像は今は隠されている他のdivに移動します。 クリックでは、2つの関数を呼び出します。最初はdivを表示し、2つ目は隠れたdivの画像のsrcをクリックした画像のhrefで変更します。ループ "jshint"で関数を作成せずにループの変数[i]を取得するには

function OnClickGallery(){ 

     var Galerie = document.getElementById('GPNPHide'), 
      liens = Galerie.getElementsByTagName('a'), 
      imgkids = Galerie.getElementsByTagName('img'), 
      ImageBig = document.getElementById('ImageFull'); 

     for (var i = 0 ; i < liens.length ; ++i) { 
      liens[i].onclick = function(){ 

        GalerieVueShowToggle(); 
        ImageBig.src = this.href; 
        return false; 
       }; 
     } 
    } 
    window.onload=OnClickGallery; 

すべて私がループの外で私の機能のonClickを作成し、ちょうどループではなく、私のonClick関数の中で私の関数を呼び出すことで、「ループ内の関数を作成していない」jshintエラーを回避しようとしたまでうまく働いていました私はここではっきりと定義されていません、私はここで立ち往生しています、私はどのように私のonClick関数のループの私を得ることができますか?

function onClick() { 
     "use strict"; 
     var ImageBig = document.getElementById('ImageFull'), 
      Galerie = document.getElementById('GPNPHide'), 
      liens = Galerie.getElementsByTagName('a'); 

     ImageBig.src = liens[i].href; 
     return false; 
    } 


    function OnClickGallery() { 
     "use strict"; 
     var Galerie = document.getElementById('GPNPHide'), 
      liens = Galerie.getElementsByTagName('a'), 
      imgkids = Galerie.getElementsByTagName('img'), 
      ImageBig = document.getElementById('ImageFull'), 
      i; 

     for (i = 0; i < liens.length; i += 1) { 
      liens[i].onclick = galerieVueShowToggle; 
      liens[i].onclick = onClick; 
     } 

    window.onload = OnClickGallery; 
+0

、私の代わりにonclick' 'の' addEventListener'を使用します。あなたに役立つことができるようにするには、動作するスニペット( 'HTML、CSS'も)を提供してください – Ionut

+0

"この "参照は永続的ではありません。あなたはまだこれを念頭に置くべきです。 関数onClick()を関数onClick(this)として書き直し、liens [i]のonclick宣言を変更します.onclick = onClick; liens [i]に.onclick = function(){onClick(this)}; –

答えて

-1

このようonClickの機能に "I" の値を渡します - まず第一に

のonClick(I)

関連する問題