說實話,我可以調用函數,但只是以硬編碼的方式。而不是硬編碼提交綁定我的getData函數,我想通過參數調用函數。請幫助我,如何做到這一點。如何在JavaScript中調用實例化類的函數?
謝謝。
formhandler = new xForm.Main(); // new formhandler
formhandler.setForm(this.formid); // fn.setForm(string) // configure the container, which has the form elements, or the form itself
modal = new xModal.Main(); // new modal handler
modal.setModal(this.modalid); // set modal element
modal.showModal(); // show
modal.bindClose(".cancel"); // bind closing classes
modal.bindSubmit(".submit", formhandler, "getData"); // bind submit to call formhandler.getData()
在xModal.js
var xModal = xModal || {};
xModal.Main = function()
{
var self = this;
...
this.bindSubmit = function(classname, a, b)
{
this.closeclass = classname;
$("#"+this.target).find(classname).click(function(){
a.call(b); // edited after the original post, i forgot to replace the call's argument to b in the question excuse me for the inaccuracy
});
}
這個函數應該調用在XFORM中的getData(這裏是XFORM片斷)
var xForm = xForm || {};
xForm.Main = function()
{
var self = this;
this.target = "";
this.data = {};
...
this.getData = function()
{
getSingleElements();
getMultiElements();
return returnData();
}
更新:
我想我只是發現這樣做的方法,但請告訴我,如果我做uncorrectly的東西,或者你有這個問題更好的解決方案(我敢肯定有人有)
我想,我有正確的方法。
在我犯了一個FN,它通過參數調用函數包含在自身的XFORM(其等於這一點,實際上)
var xForm = xForm || {};
xForm.Main = function()
{
var self = this;
this.callFn = function(func)
{
return self[func].call(this);
}
...
然後調用從另一個類(xModal)將fn
var xModal = xModal || {};
xModal.Main = function()
{
var self = this;
this.bindSubmit = function(classname, a, b)
{
this.closeclass = classname;
$("#"+this.target).find(classname).click(function(){
a.callFn(b);
});
}
然後我只是要告訴xModal這樣的:
modal.bindSubmit(".submit", formhandler, "getData"); // bind submit to call formhandler.getData()
所以現在的模式ç lass將調用args [1]的args [2]函數。也可以通過應用方法給呼叫fn提供更多的參數。
對我很好,但我不知道,也許你可以幫助我做得更好。
我不明白,對不起。 :(請解釋一下。 –
@Répás:我更新了我的答案,以解釋代碼的作用。請測試它,並接受我的答案,如果它適合你。 – geon