0

我构建了一个包含容器的轮播,每个容器有两个项目:一个图像和一个数据视图。单击时,我想翻转图像以显示数据视图。我的问题是点击事件不会在正确的元素上触发。它会触发“img”元素,但不会触发 carous。

Ext.define('MY.controller.Mycarousel' , {
extend: 'Ext.app.Controller',
requires: [ 'Ext.Img' ],

config: {
    refs: {
        mycarouselView: '#mycarousel',
    },

    control: {
        mycarouselView: {
            activate: 'flipImage',          // works
            tap: 'flipImage',               // doesn't work
        },
        'img': {
            tap: 'flipImage',               // works
        }
    }
},

如何在轮播视图上获取点击事件?

我也试过:

Ext.define('MY.controller.Mycarousel' , {
extend: 'Ext.app.Controller',
requires: [ 'Ext.Img' ],

config: {
    refs: {
        myCarouselDataview: 'dataview'
    },

    control: {
        myCarouselDataview: {
            initialize: 'flipImage',     // fires
            itemsingletap: 'flipImage',  // doesn't fire
            itemtap: 'flipImage',        // doesn't fire
            itemtouchstart: 'flipImage'  // doesn't fire
        },
        'img': {
            tap: 'flipImage', // fires
        },
    }
},

如果我单击图像,图像被翻转,数据视图出现,显示其 html,但如果我单击它,则不会触发任何事件。这对我来说很神秘...

4

1 回答 1

1

点击 carousel 不起作用,因为 Ext.carousel.Carousel 没有任何此类事件:

http://docs.sencha.com/touch/2-1/#!/api/Ext.carousel.Carousel

所以点击事件必须由轮播的内容触发,在你的情况下是 img 。

于 2012-12-24T05:55:54.003 回答