我正在尝试以与jQuery .on
列表器类似的方式收听着名的DOM元素事件。
基本上我试图用famo.us
var surface = new Surface({content: '<div>' +
'<button class="close">Close</button>'
'<button class"edit">Edit</button>' +
'</div>'});
surface.on("click", ".edit", function () {
console.log("edit button has been clicked");
});
显然它在famo.us中没有像那样工作,因为你不能起诉选择器作为第二个参数,但我想知道我将如何处理famo.us中的这种情况。
答案 0 :(得分:1)
在Famo.us中,EventHandler.on方法只接受两个参数:
EventHandler.prototype.on = function on(type, handler)
我知道有两种选择可以让你完成这项工作。
我理解您在寻找什么,但如果您使用的是纯Famo.us代码,我会提出不同的设置。我建议不要创建部分HTML块来放入内容,而是在ContainerSurface中为每个按钮放置单独的表面。您将获得类似的HTML输出,但在每个表面上都将具有Famo.us的所有功能。我在下面为你准备了一个小片段。希望这有一些帮助。
var buttonContainer = new ContainerSurface({
classes: ['editbuttons']
});
var deleteButton = Surface({
classes: ['delete']
});
var deleteButtonModifier = new Modifier();
var editButton = Surface({
classes: ['edit']
});
var editButtonModifier = new Modifier();
buttonContainer.add(deleteButtonModifier).add(deleteButton);
buttonContainer.add(editButtonModifier).add(editButton);
deleteButton.on('click',function() {
// Event code
});
editButton.on('click',function() {
// Event code
});