11

私はflexsliderを使用しています。このページの高度なタップの下に例があります( 「新しい堅牢なコールバックAPI」slider.currentSlideのセクションで、現在のスライドの番号を取得するために使用します。

完全に異なる関数でこの値にアクセスするにはどうすればよいですか?私はグローバル変数について考えていますが、それが機能するかどうかはわかりません。また、関数内の変数をグローバルとして宣言できるかどうかもわかりません。

4

2 に答える 2

36

次のコマンドでflexsliderオブジェクトにアクセスすることで、グローバル変数を回避できます。

$(element).data('flexslider')

したがって、あなたの場合は次を使用します。

$(element).data('flexslider').currentSlide
于 2013-06-19T15:43:50.360 に答える
17

グローバル変数を宣言し、aftercallback関数で値を設定できます。アイデアを得るのに役立ついくつかの擬似コードを次に示します。

var curSlide;
$(window).load(function() {
  $('.flexslider').flexslider({
    after: function(slider) {
      window.curSlide = slider.currentSlide;
    }
  });
});

function useCurSlideHere() {
  alert(window.curSlide);
}

理想的には、グローバル変数の使用を避け、useCurSlideHere関数を、window.loadのインスタンスを作成するクラスにして、aftercallback関数でcurSlide変数を渡すときに使用することができます。

$(window).load(function() {
  var customSlider = new useCurSlideHere();
  $('.flexslider').flexslider({
    after: function(slider) {
      customSlider.setCurSlide(slider.currentSlide);
    }
  });      
});

function useCurSlideHere() {
  this.curSlide = 0;

  this.setCurSlide = function(curSlide) {
    this.curSlide = curSlide;
  }

  this.getCurSlide= function() {
    alert(this.curSlide);
  }
}

編集:slider.currentSlideを使用するように回答を編集しました。

于 2012-06-26T20:51:44.383 に答える