I figured out how to do this and realized that part of my problem is
that there is no standard way to pass arguments into the plugin
methods if one wants to extend a method. For example, changing the
function for the modal as below (adding the arg functionality), allows
me to extend the standard plugins with methods that accept additional
parameters. Obviously, I can simply fork the existing code, but I
wonder if:
a) there is a better way to do what I want (I am new to plugins so I
may be missing something obvious)
b) if this type of code could be added to all plugin functions so that
they can be more easily extended without having to modify the plugin
code.
$.fn.modal = function (option) {
var args = arguments[1] || {}; // capture the arguments passed in
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) // pass in
the args
else data.show()
})
}
On Feb 2, 11:00 am, Alex <[email protected]> wrote:
> I would like to add some functionality to the Bootstrap plugins
> without actually modifying the plugins. I am new to working with
> JQuery plugins and quite get it to work. My code looks like this:
>
> $.extend($.fn.modal, {
> showFooterMessage: function (message) {
> alert("Hey");
> }
> });
>
> $(this).closest(".modal").modal("showFooterMessage");
>
> But the error is that the object has no showFooterMessage so obviously
> I am extending it incorrectly. Can anyone suggest the appropriate
> approach?
>
> Thanks,
> Alex