Sencha Touch 中不触发滚动事件

Posted

技术标签:

【中文标题】Sencha Touch 中不触发滚动事件【英文标题】:Scroller events don't fire in Sencha Touch 【发布时间】:2013-09-18 11:54:57 【问题描述】:

我在数据视图中配置了滚动事件,但它们不会触发。可滚动配置的其余部分都可以,只是似乎没有考虑侦听器配置。有什么线索吗?

   itemId:'names',
    xtype:'dataview',
    disableSelection:true,
    scrollable:
        direction:'vertical',
        listeners:
            scroll:function()
                console.log('[scrollable][on scroll]');
            ,
            scrollend:function( scroller, x, y, eOpts )
                console.log('[scrollable][on scrollend]x='+x+', y='+y);
            
        
    ,
    store:
            fields:['name'],
            data:[name:'Cherif']
    ,

    itemTpl:'name'

【问题讨论】:

【参考方案1】:

编辑:这次实际上尝试了建议的修复

您需要将listeners 配置放入scroller 中,如demonstrated in this jsFiddle:


    xtype:'dataview',
    fullscreen: true,
    scrollable: 
        direction:'vertical',
        scroller: 
            listeners:
                scroll:function()
                    console.log('[scrollable][on scroll]');
                ,
                scrollend:function( scroller, x, y, eOpts )
                    console.log('[scrollable][on scrollend]x='+x+', y='+y);
                
            
        
    ,
    store: 
        fields: ['name', 'age'],
        data: [
            name: 'Jamie',  age: 100,
            name: 'Rob',   age: 21,
            name: 'Tommy', age: 24,
            name: 'Jacky', age: 24,
            name: 'Ed',   age: 26
        ]
    ,

    itemTpl: '<div>name is age years old</div>'

【讨论】:

@Cherif 尝试为滚动条设置侦听器,而不是为数据视图设置侦听器。数据视图也没有滚动或滚动结束事件。你注意到了吗? 优秀的@fractious.. 谢谢。

以上是关于Sencha Touch 中不触发滚动事件的主要内容,如果未能解决你的问题,请参考以下文章

您可以从 html 元素触发 Sencha Touch 中的动作/事件吗?

在 Sencha Touch 中设置 numberfield 的值而不触发“change”事件

如何在 Sencha Touch 的 Google Map 上的 svg 上添加触摸和按住事件

“el”监听器在 Sencha Touch 2 中不起作用

WAP端 touch事件触发顺序记录

滑动页面时防止touch事件的误触问题