2017-08-07 13 views
0

スワイパースライダーを適切なオプションで呼び出す4つの関数があります。それらが正しいdivに追加されたら、それらをリンクするコードを追加します。したがって、一方のスライダは他方を制御し、逆も同様です。スワイパースライダー変数を関数内で定義されているとおりにターゲットできません。

「Uncaught ReferenceError:swiperV2が定義されていません」というエラーが表示されます。私はこれがそれぞれの機能の中にあり、この参照がそれらを参照していないからだと思う。

これを修正する方法についてのご意見はありますか?

おかげ

$(".swiper-container-v").each(function(index, element) { 
    var $this = $(this); 
    $this.addClass("instance-" + index); 
    $this.find(".swiper-button-prev").addClass("btn-prev-" + index); 
    $this.find(".swiper-button-next").addClass("btn-next-" + index); 
    var swiperV = new Swiper(".swiper-container-v.instance-" + index, { 
     // your settings ... 
     pagination: '.swiper-pagination-v', 
     paginationClickable: true, 
     direction: 'vertical', 
     spaceBetween: 0, 
     mousewheelControl: false, 
     speed: 600, 
     nextButton: ".btn-next-" + index, 
     prevButton: ".btn-prev-" + index 
    }); 
}); 

$(".swiper-container-h").each(function(index, element) { 
    var $this = $(this); 
    $this.addClass("instance-" + index); 
    $this.find(".swiper-button-prev").addClass("btn-prev-" + index); 
    $this.find(".swiper-button-next").addClass("btn-next-" + index); 
    var swiperH = new Swiper(".swiper-container-h.instance-" + index, { 
    // your settings ... 
    pagination: '.swiper-pagination-h', 
    paginationClickable: true, 
    spaceBetween: 0, 
    parallax: true, 
    speed: 600, 
    nextButton: ".btn-next-" + index, 
    prevButton: ".btn-prev-" + index 
    }); 
}); 



$(".swiper-container-v2").each(function(index, element) { 
    var $this = $(this); 
    $this.addClass("instance-" + index); 
    $this.find(".swiper-button-prev").addClass("btn-prev-" + index); 
    $this.find(".swiper-button-next").addClass("btn-next-" + index); 
    var swiperV2 = new Swiper(".swiper-container-v2.instance-" + index, { 
    // your settings ... 
    paginationClickable: true, 
    direction: 'vertical', 
    spaceBetween: 0, 
    mousewheelControl: false, 
    speed: 600 
    }); 
}); 


$(".swiper-container-h2").each(function(index, element) { 
    var $this = $(this); 
    $this.addClass("instance-" + index); 
    $this.find(".swiper-button-prev").addClass("btn-prev-" + index); 
    $this.find(".swiper-button-next").addClass("btn-next-" + index); 
    var swiperH2 = new Swiper(".swiper-container-h2.instance-" + index, { 
    // your settings ... 
    paginationClickable: true, 
    spaceBetween: 0, 
    parallax: true, 
    speed: 600 
    }); 
}); 

swiperV2.params.control = swiperV; 
swiperH2.params.control = swiperH; 
swiperV.params.control = swiperV2; 
swiperH.params.control = swiperH2; 
+0

私はあなたのコードを編集しました...おそらくそれはちょうどコピー/貼り付けられたばかりですが、タブ/スペースを混ぜてはいけないと指摘したいと思います。私たちのコードがきれいに整理されていないときには、明らかに間違っていることがあります。可能であれば、ヘルプのために手を差し伸べる際にも、コードをきれいにフォーマットした形で提示する必要があります。 –

答えて

0

は本当に....これはスコープが働くどれだけあると、かなりユビキタスクラス/ファンクション基づいているすべてのプログラミング言語のです。

関数のスコープ内にある変数にアクセスできるようにするには、その関数の外にある関数の範囲外にある参照を、スコープ内で作成する必要があります。だから、場合、次のような何かを持っている

func() { 
    var myVar = ... 
} 

print(myVar) 

これは、関数スコープの外に存在するグローバルスコープとして動作しませんがmyVarにはあるものの概念がありません。

まず、その変数への参照を作成する必要があります。

myVarが関数の範囲外で生成されたので、関数はmyVarについて認識しています。

また、myVarの値を返して、このようなことを行うこともできます。

func() { 
    return myVar = ... 
} 

var myFunc = func(); 

print(myFunc()) 

そして、あなたは、基本的機能の割り当て(すなわち、変数にその機能を割り当て)を行い、この場合、プロキシによってその変数は、関数の戻り値を記憶している必要があります。

関連する問題