2010-11-10 63 views
0

Mootools Ajax类有一个onComplete参数,您可以将函数名称传递给它,并在完成时显示该函数。如何通过onComplete为包含Ajax类的函数名称的变量

http://docs111.mootools.net/Remote/Ajax.js

我希望能够通过含有所述功能,而不是一个变量。我该如何去做呢?我的尝试可以在下面看到。

/* 
* This way works 
*/  
var TestClass = new Class({ 

    myRequest: function() 
    { 

     $aj = new Ajax(urle, { 

      method: 'get', 
      update: $('update_div'), 
      onComplete: this.testFunctionA 

     }).request(); 

    }, 

    testFunctionA: function() 
    { 
     alert('Yo'); 
    } 

}); 

/* 
* This way doesn't 
*/  
var TestClass = new Class({ 

    myRequest: function() 
    { 

     var updateFunction = 'this.testFunctionA'; 

     $aj = new Ajax(urle, { 

      method: 'get', 
      update: $('update_div'), 
      onComplete: updateFunction 

     }).request(); 

    }, 

    testFunctionA: function() 
    { 
     alert('Yo'); 
    } 

}); 

回答

3

您的updateFunction变量包含一个字符串。

你需要它保持本身的功能,如:

var updateFunction = this.testFunctionA; 
+0

魔术。这工作!现在等待所以让我来标记答案 – denormalizer 2010-11-10 01:37:46

+2

这不是魔术。它只是一个引用一个函数的变量。认识到Javascript函数是可以保存在变量中的第一类对象是非常重要的。 – SLaks 2010-11-10 01:41:23

+0

我不知道这个事实使它变成了魔法。感谢您的贡献 – denormalizer 2010-11-10 02:02:10

相关问题