У меня есть основной плагин jquery, в котором используются атрибуты данных data-something = "thing", чтобы сообщить плагину, какая функция запускается внутри него.
Я использовал следующий, чтобы сделать это:
// Plugin definition.
$.fn.plugin = function( options ) {
// Iterate and reformat each matched element.
return this.each(function() {
var func = element.data('something');
var response = plugin[func]($(this));
});
};
И это работает отлично. Но я хотел следовать стандарту jquery, где функции должны быть вызваны:
$.fn.plugin.thing($(this));
Итак... вопрос. Как это сделать? Возможно ли, когда одна и та же функция входит в текст?
Благодарю!
Если я правильно интерпретирую ваш вопрос, вы хотите использовать $.fn.plugin.func
вместо $.fn.plugin[func]
, где func
- это переменная, хранящая строку, которая является именем метода? Если это так, я не думаю, что это возможно, потому что JavaScript будет искать метод func
в переменной plugin
а не метод, названный после строки, содержащейся в переменной func
.
$.fn.plugin['thing'](..);