从单击回调javascript+jquery调用此对象的方法
我有一个类,它可以动态创建一个按钮,在单击时调用输入的函数:从单击回调javascript+jquery调用此对象的方法,javascript,jquery,Javascript,Jquery,我有一个类,它可以动态创建一个按钮,在单击时调用输入的函数: var TestObj = { name: "foobar", submit: function() { alert("my name is: " + this.name); }, init: function() { $('<button>').click(function() { this.submit() }).text("hello").appendT
var TestObj = {
name: "foobar",
submit: function() {
alert("my name is: " + this.name);
},
init: function() {
$('<button>').click(function() { this.submit() }).text("hello").appendTo("#entryFormBox");
}
};
TestObj.init();
entryFormBox只是它进入的容器的ID
问题是,我得到了一个错误:
未捕获类型错误:this.submit不是函数
我能猜出为什么当这个函数被赋予按钮时,它就不起作用了,这不再意味着TestObj了,对吧?。但我仍然不知道如何以我尝试的方式实现这个功能。我想在按下按钮时正确调用submit函数。问题是这是指单击回调函数。试试这个:
var TestObj={
姓名:foobar,,
提交:功能{
我的名字是:+this.name;
},
init:函数{
var self=这个;
$.clickfunction{self.submit}.texthello.appendToentryFormBox;
}
};
TestObj.init;
试试这个:
var TestObj = {
name: "foobar",
submit: function() {
alert("my name is: " + this.name);
},
init: function() {
$('<button>').click(function() { TestObj.submit() }).text("hello").appendTo("#entryFormBox");
}
};
TestObj.init();
您可以使用Function.prototype.bind或$.proxy来设置函数调用的这一部分,因为jQuery事件处理程序中的这一部分默认设置为DOM元素
var TestObj={
姓名:foobar,,
提交:功能{
我的名字是:+this.name;
},
clickHandler:函数{
这个。提交
},
init:函数{
$.clickthis.clickHandler.bindthis
.text你好
.附录NTRYFORMBOX;
}
};
TestObj.init;