Я копаюсь в Bootstrap в Твиттере и теперь хочу попробовать добавить некоторые функции в плагины, но я не могу понять, как это сделать.Используя модальный плагин в качестве примера (http://twitter.github.com/bootstrap/javascript.html#modals), Я хотел бы добавить новую функцию к плагину, которая может быть вызвана так же, как стандартные методы плагина. Я думаю, что наиболее близким является следующий код, но все, что я получаю, когда пытаюсь получить доступ, - это то, что функция не является частью объекта.
Есть предложения?1005 *
$.extend($.fn.modal, {
showFooterMessage: function (message) {
alert("Hey");
}
});
Тогда я хотел бы назвать это следующим образом:
$(this).closest(".modal").modal("showFooterMessage");
РЕДАКТИРОВАТЬ: ОК, я понял, как это сделать:
(function ($) {
var extensionMethods = {
displayFooterMessage: function ($msg) {
var args = arguments[0]
var that = this;
// do stuff here
}
}
$.extend(true, $.fn.modal.Constructor.prototype, extensionMethods);
})(jQuery);
Проблемас существующим набором плагинов Bootstrap является то, что если кто-то хочет расширить их, ни один из новых методов не может принимать аргументы. Моя попытка «исправить» это состояла в том, чтобы добавить принятие аргументов в вызове функции плагинов.
$.fn.modal = function (option) {
var args = arguments[1] || {};
return this.each(function () {
var $this = $(this)
, data = $this.data('modal')
, options = typeof option == 'object' && option
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option](args)
else data.show()
}) // end each
} // end $.fn.modal