Unslider.js中的变量递增而不显式递增

时间:2015-02-12 21:58:57

标签: javascript jquery

我正在尝试构建一个类似于unslider.js的滑块插件。我一直在寻找这个插件的代码一段时间(1周)。在unslider.js中有这个功能

_.play = function() {
            _.t = setInterval(function() {
                _.to(_.i + 1);
            }, _.o.delay | 0);
        };

现在,如果我执行以下操作:

_.play = function() {
                _.t = setInterval(function() {
               console.log(_.i); // new line added for testing 
                    _.to(_.i + 1);
                }, _.o.delay | 0);
            };

当每个滑块通过时,我得到以下结果:

当第一张幻灯片滑动时,我得到:

0 //在控制台中。

当第二张幻灯片滑动时,我得到:

1 //在控制台中。

等等。

如果你想知道_是什么,那么它基本上是this,它引用了fn.unslider()。

现在_.i在插件的第59行设置:line 59 of unslider.js

但是_.i在哪里递增?我只是看不到插件中的那部分。我已经运行了20多个测试,console.logging插件中的不同变量,但无法弄清楚这一部分。

继承了插件:fiddle

如果有人可以指出我在插件中增加_.i的确切内容会很棒。

谢谢。

亚历山大

1 个答案:

答案 0 :(得分:1)

_.i没有增加,它在to函数中设置(你的fiddler样本中的第339行)。

因此,Unslider将索引传递给_.to函数,并且Unslider / Carousel ...显示I页面。在内部,插件保存索引。

    //  Move Unslider to a slide index
            _.to = function (index, callback) {
...
                        _.i = index;
...
                };
            };