Sencha touch 2 通过另一个组件管理组件上的点击事件

Sencha touch 2 通过另一个组件管理组件上的点击事件,sencha-touch-2,listener,Sencha Touch 2,Listener,我有一个面板,上面有一个按钮(绿色),上面有一个点击监听器(红色方块)。大概是这样的: 当按下按钮时,我想避开红场的窃听器,但我找不到这样做的方法。你能帮我吗 这个例子并不完全是我的代码(im使用控制器、数据项等),但也是同样的问题: 谢谢 首先,您可以给您的绿色方块一个id: ....... height: 50, width: 50, id: 'green' ....... 然后,在父元素红方块的侦听器中,您可以检查点击事件的目标,查看它是否为绿色方块: listeners: {

我有一个面板,上面有一个按钮(绿色),上面有一个点击监听器(红色方块)。大概是这样的:

当按下按钮时,我想避开红场的窃听器,但我找不到这样做的方法。你能帮我吗

这个例子并不完全是我的代码(im使用控制器、数据项等),但也是同样的问题:


谢谢

首先,您可以给您的绿色方块一个id:

.......
height: 50,
width: 50,
id: 'green'
.......
然后,在父元素红方块的
侦听器中,您可以检查
点击事件的
目标
,查看它是否为绿色方块:

listeners: {
    tap: function(e, node) {
        if(node.parentNode.id !== 'green') {
            console.log('red tapped');
        }
     },
     element: 'element'
}
注意,在本例中,我使用的是senchatouch的HTML结构。您可以使用inspect element工具更好地了解它


更新的演示:

只需在绿色面板上处理点击事件的函数中停止事件传播:

tap: function(btn, e) {
  alert('green tapped');
  e.stopPropagation();
},

希望这有帮助

你能发布你的代码吗?我已经编辑了我的帖子。这不是我真正的代码,但也是同样的问题。如果用户点击#绿色面板的任何子项,这将不起作用
tap: function(btn, e) {
  alert('green tapped');
  e.stopPropagation();
},