交换dojox.mobile.Carousel小部件时处理事件

时间:2012-12-20 14:29:26

标签: dojo mobile-website dojox.mobile

当用户“选择”轮播项目时,dojo移动文档为您提供了一种侦听蚂蚁事件的方法:http://dojotoolkit.org/reference-guide/1.8/dojox/mobile/Carousel.html#handling-the-event-when-a-carousel-item-is-selected

但我需要在转换时采取行动。有办法解决这个问题吗?

还有什么地方可以找到小部件的所有“可处理事件”吗?

3 个答案:

答案 0 :(得分:1)

正如您在API Doc中所读到的那样,实施了一些event。不幸的是,似乎没有一个符合您的确切要求。

只有onNextBtnClick(e)onPrevBtnClick(e)似乎朝着你的方向发展。

还有handleViewChanged(view) - 方法,但我认为这不是指Carousel本身,而是指其呈现的设备(如从纵向模式转换为横向模式或某事物。 )。但由于它没有深入记录,我无法确切地说出它的用途。

答案 1 :(得分:0)

您可以订阅转换任何视图时发出的Dojo主题“/ dojox / mobile / viewChanged”,并检查该视图是否为您的Carousel的子项,如下所示:

require(["dojo/topic"], function(topic){
    topic.subscribe("/dojox/mobile/viewChanged", function(view){
        if(view.getParent() === myCarousel){
            // a new view inside my carousel has been transitioned to
            ...
        }
    });
});

或者,您实际上可以连接到handleViewChanged方法,因为Carousel在内部订阅了“/ dojox / mobile / viewChanged”并调用了handleViewChanged。

答案 2 :(得分:0)

在了解了有关Dojo的更多信息后,我意识到我没有正确接近这一点。

创建一个继承自轮播的新模块。那么你需要做的就是覆盖handleViewChanged方法(确保调用this.inherited)然后在那里做东西。