why send twice the same email? 2009/7/12 Harvey <scottandrewhar...@gmail.com>
> > Hey, > > I'm in the process of developing a new plugin but the way I have > structured the codes doesn't seem quite right to me so I'm hoping > someone might be able to offer a better way to do it. > > The plugin itself has different behaviour if called on different types > of elements (images, divs etc) with a range of shared functions used > across all element types. > > This is the basic structure I have so far: > > (function ($) { > $.fn.editable = function (options) { > var defaults = { > // default value declarations > } > > var opts = $.extend(defaults, options); > > return this.each(function () { > var $this = $(this); // Cache a jQuery version of this > var tag = $this.get(0).tagName; > > switch(tag) { > case 'DIV': initDiv(); break; > case 'IMG': initImage(); break; > } > > function initDiv () { > // initialise the plugin to work with divs > } > > function initImage () { > // initialise the plugin to work with images > } > > // functions used by divs only > function divFunction () { > // body... > } > > // functions used by images only > function imageFunction () { > // body... > } > > // functions used by divs and images > function sharedFunction () { > // body... > } > > }); > } > })(jQuery); > > > The reason it does seem right to me is because any instance of the > plugin called on a div will also contain all the code that is used if > it was an image even though the code won't be used. > > Can any offer something better? >