Famo.us菜单 - 点击 - 还有其他方法吗?

时间:2014-07-09 15:37:07

标签: menu famo.us

我一直在浏览Famo.us的示例和演示,特别是菜单。在taasky,timbre等示例中,侧边菜单由MenuItemViews组成。每个MenuItemView都包含一个背景,图标和标题 - 每个都是一个表面。

为了使每个菜单项“可点击”,我是否必须在组成MenuItemView并发出事件处理程序的3个表面中添加.click?

或者是否有更简单的方法让每个菜单项“可点击”?

提前感谢您的帮助:)

1 个答案:

答案 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);