Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得';Flexslider&x27;将当前图像编号转换为可以在函数中使用的变量?_Javascript_Jquery_Flexslider - Fatal编程技术网

Javascript 如何获得';Flexslider&x27;将当前图像编号转换为可以在函数中使用的变量?

Javascript 如何获得';Flexslider&x27;将当前图像编号转换为可以在函数中使用的变量?,javascript,jquery,flexslider,Javascript,Jquery,Flexslider,我正在使用。在高级点击页面下有一个示例(在“新的、健壮的回调API”一节中),他们使用slider.currentSlide获取当前幻灯片的编号 如何在一个完全不同的函数中访问此值?我正在考虑一个全局变量,但我不知道这是否可行,也不知道是否可以将函数中的变量声明为全局变量。您可以声明一个全局变量并在后回调函数中设置值。下面是一些伪代码,帮助您我的想法是: var curSlide; $(window).load(function() { $('.flexslider').flexslider

我正在使用。在高级点击页面下有一个示例(在“新的、健壮的回调API”一节中),他们使用
slider.currentSlide
获取当前幻灯片的编号


如何在一个完全不同的函数中访问此值?我正在考虑一个全局变量,但我不知道这是否可行,也不知道是否可以将函数中的变量声明为全局变量。

您可以声明一个全局变量并在后回调函数中设置值。下面是一些伪代码,帮助您我的想法是:

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

function useCurSlideHere() {
  alert(window.curSlide);
}
虽然理想情况下,您应该避免使用全局变量,并且可以将useCurSlideHere函数生成一个类,在window.load上创建一个实例,并在after回调函数中传递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。

您可以通过以下方式访问flexslider对象来避免全局变量:

$(element).data('flexslider')
因此,在您的情况下,您将使用:

$(element).data('flexslider').currentSlide

回答得好,但实际上有一种更干净、更简单的方法,请看下面我的答案。slider不再工作了。currentSlide未定义。@Lewis的答案就可以了。