触发 onItemDisclosure 事件会导致 itemtap 事件触发



我正在尝试处理同一列表中的事件,第一个是itemtap事件,另一个是onItemDisclosure 事件。

当我点击箭头时,onItemDisclosure 事件被触发并执行处理程序,但是,itemtap 也会被触发,并且在 onItemDisclosure 处理程序执行后,itemtap 处理程序依次被执行。

我该如何解决这个问题?

视图:

Ext.define('myapp.view.listview', {   
    requires: [ 'myapp.model.listmodel'],
    extend: 'Ext.List',
    alias:'widget.listview',  
    id : 'listview',
    fullscreen: true,  
config: {
    iconCls: 'list',

    title : 'List',
    onItemDisclosure: function () {
    alert('ok')
    },               
    store:'ListView',  
    itemTpl:'{title}'   

  }
 });

控制器代码 :

 Ext.define('myapp.controller.Main', {  
     extend: 'Ext.app.Controller',
    views : ['listview'],
    config : {

    refs:{
        list:'#listview'

    },
    control :{

        listview:{
            itemtap:'display',
            onItemDisclosure : 'disclosure'
        }



    }
},

display:function(){
   alert('tap')
},


disclosure:function (){
    alert('disclosure');
},
您需要

阻止itemtap事件继续冒泡。首先,您需要函数调用的参数,然后在事件参数上调用stopEvent()

disclosure: function(list, record, node, index, event, eOpts) {
    console.log('disclose');        
    event.stopEvent();
},

onItemDisclosure 是 Ext.List 的属性 - 不是事件。在控制器的control中,我们使用事件。因此,在这里您将需要披露类似于"itemtap"事件的事件。检查此链接。

相关内容

  • 没有找到相关文章

最新更新