2012-05-31 15 views
5

tôi đang cố gắng xử lý các sự kiện trên cùng một danh sách, sự kiện đầu tiên là sự kiện itemtap và sự kiện khác là sự kiện onItemDisclosure.Kích hoạt sự kiện onItemDisclosure gây ra sự kiện itemtap để kích hoạt

Khi tôi nhấn vào mũi tên, sự kiện onItemDisclosure được kích hoạt và trình xử lý được thực hiện, tuy nhiên, mục đó cũng được kích hoạt và sau khi xử lý onItemDisclosure thực hiện, trình xử lý itemtap được thực thi lần lượt.

Làm cách nào tôi có thể giải quyết vấn đề này?

Xem:

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}' 


    } 
}); 

khiển Code:

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'); 
}, 

Trả lời

0

onItemDisclosure là một tài sản của Ext.List - không phải là một sự kiện. Trong bộ điều khiển control, chúng tôi sử dụng các sự kiện. Vì vậy, tại đây bạn sẽ cần tiết lộ sự kiện tương tự như sự kiện "itemtap". Kiểm tra số link này.

+0

Cảm ơn bạn đã sửa lỗi, nhưng vẫn còn hai sự kiện được kích hoạt khi tôi nhấp vào mũi tên. – user1203861

+0

Câu trả lời này không giải quyết được câu hỏi; moosekebab's does – JoshuaDavid

9

Bạn cần dừng sự kiện itemtap tiếp tục bong bóng. Trước tiên, bạn cần các đối số cho cuộc gọi hàm, sau đó đối số sự kiện bạn gọi stopEvent().

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

    event.stopEvent(); 
}, 
+2

Tại sao đây không phải là câu trả lời được chọn?!? – JoshuaDavid