5

同じリストのイベントを処理しようとしています。最初はitemtapイベントで、もう1つは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');
},
4

2 に答える 2

9

itemtapあなたは泡立ち続けるイベントを止める必要があります。最初に関数呼び出しへの引数が必要であり、次にイベント引数で呼び出しますstopEvent()

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

    event.stopEvent();
},
于 2012-08-31T10:58:15.443 に答える
0

onItemDisclosureExt.Listのプロパティであり、イベントではありません。コントローラcontrolでは、イベントを使用します。したがって、ここでは「itemtap」イベントと同様のイベントを開示する必要があります。このリンクを確認してください。

于 2012-06-01T08:25:34.130 に答える