当swiper对象名称作为字符串传递时,idangerous Swiper swipeto函数不起作用

时间:2014-01-14 11:46:44

标签: javascript

<script>

var contentSwiperNumber = 'contentSwiper1';


var navSwiper = new Swiper('.swiper-nav',{
    scrollContainer: true,

    /*Thumbnails Clicks*/
    onSlideClick: function(){

    <!-- These work fine -->
    contentSwiper1.swipeTo( navSwiper.clickedSlideIndex );
    contentSwiper2.swipeTo( navSwiper.clickedSlideIndex );


    <!-- !!!!Not Working???? contentSwiperNumber.swipeTo ????-->
    contentSwiperNumber.swipeTo( navSwiper.clickedSlideIndex );

    }
    })

</script>

有没有办法使用传递给变量的字符串来引用swiper对象名称?

请参阅上面的代码,我传递字符串:

var contentSwiperNumber ='contentSwiper1';

试图引用swiper对象var contentSwiper1

1 个答案:

答案 0 :(得分:0)

请您详细说明您准备做什么?根据我在这里看到的内容,您将字符串值放在 contentSwiperNumber 中并尝试从中调用 swipeTo 。您正在将字符串值视为具有方法的对象。

我可以说 contentSwiper1 作为变量(不是字符串值)就是代码本身就像 navSwiper 一样。当你打电话

contentSwiper1.swipeTo(index)

此处 contentSwiper1 是一个滑块对象。但是当你打电话时

contentSwiperNumber.swipeTo(index)

您正在调用字符串。想象一下你正在做什么

'contentSwiper1'.swipeTo(index)

有效吗?我不这么认为。

所以,要么像amplifyjs这样的会话中保存对象,这会让你做这样的事情:

var contentSwiper1 = new Slider('.contentSwiper1', options);
amplify.store('contentSwiper1', contentSwiper1);

要检索所需的对象,您可以使用:

var contentSwiperNumber = 'contentSwiper1';
var swiperObject = amplify.store(contentSwiperNumber);
swiperObject.swipeTo(index);

此外,您可以使用窗口对象保存您创建的游标,然后根据 contentSwiperNumber 编写一些逻辑来执行切换案例以返回您需要的对象

我希望这会有所帮助。