Как вызвать callback функцию
Здравствуйте.
Пишу плагин для jQuery. Новые методы пишу в $.fn.extend({...}); В один из таких методов в качестве параметра передаю название следующей функции. Как вызвать такую функцию, название которой передал в параметре функции?
$obj.validateDate(saveStartDate);
$.fn.extend({
validateDate: function (сallBack) {
this.сallBack();
},
saveStartDate: function () {
console.log('saveStartDate');
},
}); //end $.fn.extend
|
this[сallBack]()не? |
Передавать надо не имя функции, а саму функцию, и контекст, в котором нужно вызвать эту функцию.
|
Kolyaj,
А почему бы и нет, получается своеобразный switch. |
Где тут switch?
|
Цитата:
Цитата:
|
А в чём именно проблема?
Пример:
function e(func){
func();
}
e(function(){alert(1)});
|
:-?
Сейчас работает. Хм. Где-то ошибся, потому как не работало до этого. Спасибо. |
Kolyaj,
Разьве совсем не похоже?
var pswitch = function(){
this.e = function(){
var args = Array.prototype.slice.call(arguments);
this[args.shift()].apply(this, args);
return this;
}
this.func1 = function(){alert(1)};
this.func2 = function(){alert(2)};
this.func3 = function(t){alert(t);};
};
var i = new pswitch();
i.e('func1').e('func2').e('func3', 3);
|
Нет, не похоже. Замена switch объектом -- известный паттерн. Непонятно, зачем он здесь нужен.
|
| Часовой пояс GMT +3, время: 16:05. |