【问题标题】:Adding click listeners in a loop for Revolution Slider在循环中为 Revolution Slider 添加点击侦听器
【发布时间】:2014-12-11 22:52:22
【问题描述】:

我正在为 Wordpress 使用 Revolution Slider 插件。 Rev Slider 提供了一个用于更改幻灯片或监听事件的 api。在滑块包装器下面,我使用<a id="<?php echo "rev-slide-".$vid_link ?>" href="#"><?php echo $link ?></a> 动态地为每张幻灯片添加一个链接,其中$vid_link 是一个递增的整数,$link 是输入到自定义字段中的一些文本。我想要在我的脚本文件中做的是为每个链接添加一个点击监听器,该链接将访问 rev slider 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 名称。我在直接从循环本身中使用 for 循环变量调用 revshowslide() 时遇到了范围问题。我尝试将 api 调用包装在一个单独的函数中,但它仍然只接收 i 的最终值。对此的任何帮助将不胜感激。

【问题讨论】:

    标签: jquery revolution-slider


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 2018-05-25
      • 2015-11-01
      • 2016-03-01
      • 2020-10-30
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多