0

亲爱的,我以编程方式创建了一个新的 Dojo 按钮。我正在我的一个自定义 dojo 课程中这样做。在创建按钮时,我定义了一个 onClick 方法,在单击按钮时应该调用该方法。这个方法是类的一部分。我无法调用该方法,因为this单击按钮时“”的范围不同。有人可以帮我解决这个问题吗?

dojo.declare("CustomClass",null,{
createCustomButton:function(){
var button = new dijit.form.Button({onClick:function(){
                    removetrack();
                    testDataGrid.filter({status:"COMPLETED"});
                }},"testButton1");
},
removetrack:function(){
//some logic
}
});


var customObj=new CustomClass();
customObj.createCustomButton();

removetrack()当我单击创建的按钮时,我需要调用方法。

4

2 回答 2

0

使用 dojo.hitch();

dojo.declare("CustomClass",null,{
    createCustomButton:function(){
        var button = new dijit.form.Button({
            onClick:dojo.hitch(this, function(){
                this.removetrack();
                testDataGrid.filter({status:"COMPLETED"});
            })
        },"testButton1");
    },
    removetrack:function(){
        //some logic
    }
});


var customObj=new CustomClass();
customObj.createCustomButton();
于 2011-03-03T12:03:03.827 回答
-1

如果您需要紧急修复,我无法做得更好

var button = new dijit.form.Button({
                    label: "Custom!",
                    onClick:function(){
                    CustomClass().removetrack();
                }},"result");

希望有人能给你更好的选择。

于 2011-03-03T09:49:20.763 回答