在Mootools中调用方法,正确的方法?

问题描述 投票:2回答:1

我已经在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,如果有帮助。

javascript jquery dom-events mootools
1个回答
1
投票

尝试将“ this”绑定到您的清除函数:

© www.soinside.com 2019 - 2024. All rights reserved.