首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用原型和Scriptaculous的幻灯片

使用原型和Scriptaculous的幻灯片
EN

Stack Overflow用户
提问于 2013-02-24 16:49:14
回答 1查看 236关注 0票数 1

我编写了第一个脚本脚本来在某个div元素之间创建幻灯片:

代码语言:javascript
复制
    var SlideShow = Class.create({
    initialize:function(element, delayStart){
        this.element = element;
        this.delayStart = delayStart;


        this.slides = this.element.childElements();

        this.numberOfSlides = this.slides.size();

        this.numberActiveSlide = 1;

        this.start_slideshow();
    },

    start_slideshow: function() 
    {
        this.switch_slides.delay(this.delayStart);
    },

    switch_slides: function() 
    {
        this.slides[this.numberActiveSlide].fade();

        if (this.numberActiveSlide == this.numberOfSlides) { this.numberActiveSlide = 1; } else { this.numberActiveSlide = this.numberActiveSlide + 1; }

        Effect.Appear.delay(this.slides[this.numberActiveSlide], 850);

        this.switch_slides.delay(this.delay + 850);
    }


});

document.observe("dom:loaded", function(){
var slideshows = $$('div.slideshow');
slideshows.each(
    function(slideshow) {
        s = new SlideShow(slideshow, 2);
    });
});

但是我总是会犯这个错误,而且已经好几个小时了,我不知道我的问题出在哪里!

未定义不是对象(计算this.slidesthis.numberActiveSlide);

谢谢你!

尼克

EN

回答 1

Stack Overflow用户

发布于 2013-02-27 02:13:58

99%的人认为这是一个上下文问题。确保绑定函数调用,以便在代码中保留this

调试thisswitch_slides中的内容:它应该与start_slideshow中的this相同。如果不是,则将对switch_slides的调用绑定到实例:

代码语言:javascript
复制
start_slideshow: function() 
{
    this.switch_slides.bind(this).delay(this.delayStart);
},

您可能必须在switch_slides中进行同样的操作,在那里它会调用自己。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15054023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档