我已经在mootools中创建了一个类,该类在首次调用initialize()
方法时会创建一个div元素,然后将其添加到document.body
之后。然后,我附加一个上下文菜单处理程序,当在浏览器中从上下文菜单中选择一个选项时,它将调用函数。
我遇到的麻烦是上下文菜单处理程序实际上将不会调用任何函数,我无法完全弄清楚原因,并想知道这里是否有人可以发现问题?
这是我创建的类和附加的上下文菜单处理程序,为简洁起见,删除了其他一些代码:
var uml_Canvas = new Class({
initialize: function()
{
this.mainCanvasDiv = document.createElement("div");
this.mainCanvasDiv.id = "mainCanvas";
this.mainAppDiv.appendChild(this.mainCanvasDiv);
this.paper = Raphael(this.mainCanvasDiv.id, 500, 400);
this.paper.draggable.enable();
$("#"+this.mainCanvasDiv.id).contextMenu('canvasPanel_Menu',
{
bindings:
{
'clear': function(t)
{
this.clearPaper();
}
}
});
},
clearPaper : function()
{
this.paper.clear();
}
});
快速概述,将创建一个对象,该对象创建一个div,然后将其附加到主体。然后为div分配了上下文菜单。调用“ clear”选项时,出于某种原因应调用方法clearPaper()
。但是,如果我将this.clearPaper();
行替换为简单的alert()
调用,则确实可以运行。
任何人都可以看到无法调用方法的原因吗?
顺便说一句,我得到的错误是this.clearPaper is not a function
,如果有帮助。
尝试将“ this”绑定到您的清除函数: