【问题标题】:Handling the event when a dojox.mobile.Carousel widget is swapped交换 dojox.mobile.Carousel 小部件时处理事件
【发布时间】:2012-12-20 14:29:25
【问题描述】:
【问题讨论】:
标签:
dojo
mobile-website
dojox.mobile
【解决方案1】:
正如您在API Doc 中看到的那样,实现了一些events。不幸的是,它们似乎都不符合您的确切要求。
似乎只有onNextBtnClick(e) 和onPrevBtnClick(e) 朝着您的方向前进。
还有一个handleViewChanged(view)-方法,但我认为这不是指Carousel 本身,而是指它所呈现的设备(比如从纵向模式到横向模式等等)。但由于它没有很深入的记录,我无法确切地说出它的用途。
【解决方案2】:
您可以订阅在任何视图转换到时发出的 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。
【解决方案3】:
在了解了有关 Dojo 的更多信息后,我意识到我没有正确处理这个问题。
创建一个继承自 carousel 的新模块。那么您需要做的就是覆盖handleViewChanged 方法(确保调用this.inherited),然后在其中执行操作。