diff --git a/src/jqfactory.js b/src/jqfactory.js index 2cc1cb4..ae7259d 100644 --- a/src/jqfactory.js +++ b/src/jqfactory.js @@ -68,7 +68,8 @@ }; } setup = function() { - var firstArg = arguments[0], + var args = slice.call(arguments), + firstArg = args[0], options = $.isPlainObject(firstArg) ? firstArg : {}, existingElem = props.element, callingElement = this, @@ -82,7 +83,10 @@ rendered; if (existingInstance) { existingInstance._init.apply(existingInstance, arguments); - existingInstance._superMethod.apply(existingInstance, arguments); + if($.type(firstArg) === 'string') { + args.shift(); + existingInstance[firstArg].apply(existingInstance, args); + } return; } widget = new Plugin(instanceProps); diff --git a/src/jqfactory.min.js b/src/jqfactory.min.js index 806bcb5..9c28452 100644 --- a/src/jqfactory.min.js +++ b/src/jqfactory.min.js @@ -1,4 +1,4 @@ -/*! jqfactory - v0.3.0 - 2013-07-25 +/*! jqfactory - v0.3.0 - 2013-08-01 * https://github.com/gfranko/jqfactory * Copyright (c) 2013 Greg Franko; Licensed MIT*/ -!function(a){"use strict";"function"==typeof define&&define.amd?define("jqfactory",["jquery"],function(){a(window.jQuery,window,document)}):a(window.jQuery,window,document)}(function(a,b,c,d){"use strict";var e=Array.prototype.slice,f={create:function(b,c,e){var g,h,i,j=c._super,k=b.split("."),l=k[0],m=k[1],n=l+"-"+m,o="."+n,p={jqfactory:f.common,namespace:l,basename:m,fullname:n,eventnamespace:o},q=c,r=a.extend({},a.isPlainObject(j)&&!a.isEmptyObject(j)?a.extend(!0,{},f.common,j):f.common,p),s={};a.fn[l],!(l&&m&&a.isPlainObject(c))||a.isEmptyObject(c)||a[l]&&a[l][m]||(h=function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b])},h.prototype=r,a[l]=a[l]||{},a[l][m]=q,e?(s[m]=function(){return i=arguments,this.each(function(){g.apply(this,i)})},f.utils.createNamespace(l,s)):a.fn[m]=function(){return i=arguments,this.each(function(){g.apply(this,i)})},g=function(){var b,e,g,i=arguments[0],j=a.isPlainObject(i)?i:{},k=c.element,l=this,m=k?a(k)[0]:l,o=a(m),p=a.data(m,n),s={},t=q.options||{};return p?(p._init.apply(p,arguments),p._superMethod.apply(p,arguments),void 0):(b=new h(q),b.options=a.extend(!0,{},t,j),b._super=r,b.callingElement=l,b.$callingElement=a(l),b.element=m,b.$element=o,a.data(m,b.fullname,b),s[n]=function(b){return a(b).data(n)!==d},a.extend(a.expr[":"],s),e=b._create()||{},b.isDeferred(e)?e.done(function(){g=b._render.apply(b,arguments)||{},f.utils.postRender.call(b,g,arguments)}):(g=b._render()||{},f.utils.postRender.call(b,g)),void 0)})},utils:{createNamespace:function(b,c){a.fn[b]||(a.fn[b]=function d(a){return this instanceof d?(this.__namespace_context__=a,void 0):new d(this)}),a.each(c,function(c,d){a.fn[b].prototype[c]=function(){return d.apply(this.__namespace_context__,arguments)}})},postRender:function(a,b){var c=this;c.isDeferred(a)?a.done(function(){c._on(c._events),c._postevents.apply(c,b)}):(c._on(c._events),c._postevents())}},common:{_create:a.noop,_init:a.noop,_render:a.noop,_events:{},_postevents:a.noop,_on:function(b,c){var d={};return a.isPlainObject(b)?d=b:"string"===a.type(b)&&a.isFunction(c)&&(d[b]=c),this._eventBindings(d),this._events=a.extend(!0,{},this._events,d),this},_off:function(b){var c,d={},e=-1;if(a.isArray(b))for(c=b.length;++e