在Revolution Slider的循环中添加单击侦听器

时间:2014-12-11 22:52:22

标签: jquery revolution-slider

我正在使用Word Slpress的Revolution Slider插件。 Rev Slider提供了用于更换幻灯片或收听活动的API。在滑块包装器下面,我使用<a id="<?php echo "rev-slide-".$vid_link ?>" href="#"><?php echo $link ?></a>动态地为每张幻灯片添加一个链接,其中$ vid_link是一个递增的整数,$ link是一些输入自定义字段的文本。我想在我的脚本文件中做的是为每个链接添加一个点击监听器,该链接将访问rev滑块api以更改幻灯片。到目前为止,我已尝试过以下方法:

jQuery(document).ready(function($) {

    //...

    if(typeof revapi1 === 'undefined') return;

    revapi1.bind('revolution.slide.onloaded', function() {
        var totalSlides = revapi1.revmaxslide();

        var changeSlide = function(x) {
            revapi1.revshowslide(x);
        }

        for (var i = 2; i <= totalSlides; i++) {
            jQuery("#rev-slide-" + i).click(function(e) {
                e.preventDefault();
                changeSlide(i);
            });
        }
    });
});

这里revapi1是给特定滑块的var名称。我在调用revshowslide()时遇到了范围问题,直接在循环内部使用for循环变量。我尝试在单独的函数中包装api调用,但它仍然只接收i的最终值。任何有关这方面的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

“i”变量在你的点击功能中不可用,你可以这样传递:

jQuery("#rev-slide-" + i).click({myInt : i}function(e) {
        e.preventDefault();
        changeSlide(e.data.myInt);
 });