【问题标题】:How do I prevent event bubbling in a Titanium Alloy view?如何防止钛合金视图中的事件冒泡?
【发布时间】:2013-02-15 04:24:36
【问题描述】:
【问题讨论】:
标签:
javascript
ios
titanium
titanium-alloy
【解决方案1】:
也许更好的方法是检查源属性。
例如假设您有以下观点:
<View id="parent" onClick="onParentClicked">
<View id="child1" onClick="onChild1Clicked"/>
<View id="child2" onClick="onChild2Clicked"/>
</View>
解决方案一:使用气泡父属性(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!");
}
这要快得多。尤其是当您有许多子元素时。
【解决方案3】:
试试:
function doStuff(e){
e.cancelBubble = true;
alert('hello');
}