我正在使用flexslider。在此页面的高级点击下有一个示例(在“新的、强大的回调 API”部分中,他们用于slider.currentSlide
获取当前幻灯片的编号。
如何在完全不同的函数中访问此值?我正在考虑一个全局变量,但我不知道这是否可行,我不知道是否可以将函数中的变量声明为全局变量。
我正在使用flexslider。在此页面的高级点击下有一个示例(在“新的、强大的回调 API”部分中,他们用于slider.currentSlide
获取当前幻灯片的编号。
如何在完全不同的函数中访问此值?我正在考虑一个全局变量,但我不知道这是否可行,我不知道是否可以将函数中的变量声明为全局变量。
您可以通过以下方式访问 flexslider 对象来避免全局变量:
$(element).data('flexslider')
因此,在您的情况下,您将使用:
$(element).data('flexslider').currentSlide
您可以声明一个全局变量并在 after 回调函数中设置值。这里有一些伪代码可以帮助你理解:
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的答案。