Динамически вызывать метод класса с помощью JavaScript - PullRequest
2 голосов
/ 12 ноября 2010

Я хочу динамически вызывать метод пользовательского класса, очень похожий на приведенный ниже JavaScript.За исключением нижеприведенного JavaScript, вызывается только функция, которая существует в моем коде.Я хочу вызвать (динамически) функцию класса.Поэтому я бы удалил window{value](target, event, self); и использовал бы что-то еще, что вызвало бы метод пользовательского класса, такого как «mycustomclass.anythingcouldbethismethod (target, event, self);»после того, как он был создан, конечно.

var functions = [
                 'ajaxify_overlay',
                 'ajaxify_overlayCancel',
                 'ajaxify_overlaySubmit',
                 'ajaxify_rollout',
                 'ajaxify_rolloutCancel',
                 'ajaxify_rolloutSubmit',
                 'ajaxify_upload',
                 'ajaxify_contentArea',
                 'ajaxify_itemToggler',
                 'ajaxify_closer',
                 'ajaxify_submit',
                 'ajaxify_inputActivate',
                 'ajaxify_executeAndRefresh',
                 'ajaxify_empty' 
               ];

$(document).bind('ready', function(event) {   

  $('body').live('click', function (event){   

   var target = $(event.target);

   var self = this;  

   $.each(functions, function(index, value){

     if($(target).hasClass(value)) {

       window[value](target, event, self);

     }

          });    

       });

});

Ответы [ 2 ]

9 голосов
/ 12 ноября 2010
var myClass = { /* your class definition */ };
var methodName = 'myMethod';
myClass[methodName](p1,p2,...,pN);
0 голосов
/ 12 ноября 2010

Вы имеете в виду, как это?

function methodCaller( methodName, target, event, self ) {
    mycustomclass[ methodName ](target, event, self);
}

methodCaller( "someMethodName" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...