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

Posted

技术标签:

【中文标题】交换 dojox.mobile.Carousel 小部件时处理事件【英文标题】:Handling the event when a dojox.mobile.Carousel widget is swapped 【发布时间】:2012-12-20 14:29:25 【问题描述】:

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

但我需要在转换时执行操作。有办法处理吗?

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

【问题讨论】:

【参考方案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),然后在其中执行操作。

【讨论】:

以上是关于交换 dojox.mobile.Carousel 小部件时处理事件的主要内容,如果未能解决你的问题,请参考以下文章

计算机网路电路交换分组交换

SMB交换机接入交换机汇聚交换机核心交换机

概述-第二节:三种交换方式(电路交换报文交换和分组交换)

概述-第二节:三种交换方式(电路交换报文交换和分组交换)

计算机网络5--网络核心之数据交换基础及电路交换

交换机的分类及作用