也许更好的方法是检查源属性。
例如,假设您有以下观点:
<View id="parent" onClick="onParentClicked">
<View id="child1" onClick="onChild1Clicked"/>
<View id="child2" onClick="onChild2Clicked"/>
</View>
解决方案 1:使用气泡父属性 (Long)
您可以像其他答案一样做,并在 tss 文件中写入:
'#child1': {
bubbleParent : false,
}
'#child2': {
bubbleParent : false,
}
但这对于许多子元素可能会变得乏味。
解决方案 2:使用 Javascript e.cancelBubble(甚至更长)
在javascript中做:
function onChild1Clicked(e) {
e.cancelBubble = true;
}
function onChild2Clicked(e) {
e.cancelBubble = true;
}
这又是乏味的。
解决方案 3:使用 Javascript e.source(最佳)
只需检查父事件处理程序上的源是什么:
function onParentClicked(e) {
if (e.source.id !== 'parent') {
return;
}
alert("Parent clicked!");
}
这要快得多。尤其是当您有许多子元素时。