我一直在浏览Famo.us的示例和演示,特别是菜单。在taasky,timbre等示例中,侧边菜单由MenuItemViews组成。每个MenuItemView都包含一个背景,图标和标题 - 每个都是一个表面。
为了使每个菜单项“可点击”,我是否必须在组成MenuItemView并发出事件处理程序的3个表面中添加.click?
或者是否有更简单的方法让每个菜单项“可点击”?
提前感谢您的帮助:)
答案 0 :(得分:2)
是的,您要做的是将Surface事件传递给Views _eventOutput处理程序。这样,只需要在视图本身上定义click事件。
在此示例中,有两个表面,每个表面将所有事件传递给_eventOutput视图。当我们点击任一曲面时,会触发视图点击事件
希望这有帮助!
var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var View = require('famous/core/View');
var context = Engine.createContext();
var view = new View();
var surface1 = new Surface({
size:[400,400],
properties:{
backgroundColor:'green'
}
});
surface1.pipe(view._eventOutput);
view.add(surface1);
var surface2 = new Surface({
size:[200,200],
properties:{
backgroundColor:'red'
}
});
surface2.pipe(view._eventOutput);
view.add(surface2);
view.on('click',function(evt){
console.log("View Clicked!");
})
context.add(view);