TONY0922のブログ

学んだことを適当に記録していくブログです。主にRubyで仕事してます。最近はJavaScriptとObjectibe-C始めました。Titanium関連もちょいちょい触ってます。更新頻度はそんなに高くないので、ご了承下さい。

Titanium Mobileで親Viewにイベント伝搬させない

Titanium SDK:3.2.0
Alloy:1.3.0

親Viewと子Viewに同じClickイベントを設置した時、
デフォルトでは子ViewのClickイベント後、親Viewのclickイベントが発生します。

var parentView = Ti.UI.createView({
	height : Ti.UI.FILL,
	width : Ti.UI.FILL
});

parentView.addEventListener('click', function(e){
	console.log("parent click!");	
});

var childView = Ti.UI.createView({
	height : Ti.UI.FILL,
	width : Ti.UI.FILL
});

childView.addEventListener('click', function(e){
	console.log("child click!");	
});

parentView.add(childView);

click時

child click!
parent click!

これを制御するには、bubbleParentプロパティを制御します。

var childView = Ti.UI.createView({
	height : Ti.UI.FILL,
	width : Ti.UI.FILL,
	bubbleParent : false
});

click時

child click!

これで親プロパティのイベントが発生させないようにできます。