mirror of https://github.com/metafizzy/isotope
2 changed files with 115 additions and 0 deletions
@ -0,0 +1,54 @@ |
|||||||
|
(function( $, undefined ) { |
||||||
|
|
||||||
|
// our "Widget" object constructor
|
||||||
|
var Molequul = function( options, element ){ |
||||||
|
this.options = options; |
||||||
|
this.element = element; |
||||||
|
|
||||||
|
this._init(); |
||||||
|
}; |
||||||
|
|
||||||
|
Molequul.prototype = { |
||||||
|
|
||||||
|
// _init fires when your instance is first created
|
||||||
|
// (from the constructor above), and when you
|
||||||
|
// attempt to initialize the widget again (by the bridge)
|
||||||
|
// after it has already been initialized.
|
||||||
|
_init: function(){ |
||||||
|
// init code
|
||||||
|
}, |
||||||
|
|
||||||
|
option: function( key, value ){ |
||||||
|
|
||||||
|
// get/change options AFTER initialization:
|
||||||
|
// you don't have to support all these cases,
|
||||||
|
// but here's how:
|
||||||
|
|
||||||
|
// signature: $('#foo').bar({ cool:false });
|
||||||
|
if ( $.isPlainObject( key ) ){ |
||||||
|
this.options = $.extend(true, this.options, key); |
||||||
|
|
||||||
|
// signature: $('#foo').option('cool'); - getter
|
||||||
|
} else if ( key && typeof value === "undefined" ){ |
||||||
|
return this.options[ key ]; |
||||||
|
|
||||||
|
// signature: $('#foo').bar('option', 'baz', false);
|
||||||
|
} else { |
||||||
|
this.options[ key ] = value; |
||||||
|
} |
||||||
|
|
||||||
|
return this; // make sure to return the instance!
|
||||||
|
}, |
||||||
|
|
||||||
|
publicFn: function(){ // notice no underscore
|
||||||
|
return "public method"; |
||||||
|
}, |
||||||
|
|
||||||
|
_privateFn: function(){ |
||||||
|
return "private method"; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
$.widget.bridge( 'molequul', Molequul ); |
||||||
|
|
||||||
|
})( jQuery ); |
@ -0,0 +1,61 @@ |
|||||||
|
/*! |
||||||
|
* jQuery UI Widget 1.8.5 |
||||||
|
* |
||||||
|
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses. |
||||||
|
* http://jquery.org/license
|
||||||
|
* |
||||||
|
* http://docs.jquery.com/UI/Widget
|
||||||
|
*/ |
||||||
|
(function( $, undefined ) { |
||||||
|
|
||||||
|
$.widget = $.widget || {}; |
||||||
|
|
||||||
|
$.widget.bridge = $.widget.bridge || function( name, object ) { |
||||||
|
$.fn[ name ] = function( options ) { |
||||||
|
var isMethodCall = typeof options === "string", |
||||||
|
args = Array.prototype.slice.call( arguments, 1 ), |
||||||
|
returnValue = this; |
||||||
|
|
||||||
|
// allow multiple hashes to be passed on init
|
||||||
|
options = !isMethodCall && args.length ? |
||||||
|
$.extend.apply( null, [ true, options ].concat(args) ) : |
||||||
|
options; |
||||||
|
|
||||||
|
// prevent calls to internal methods
|
||||||
|
if ( isMethodCall && options.substring( 0, 1 ) === "_" ) { |
||||||
|
return returnValue; |
||||||
|
} |
||||||
|
|
||||||
|
if ( isMethodCall ) { |
||||||
|
this.each(function() { |
||||||
|
var instance = $.data( this, name ); |
||||||
|
if ( !instance ) { |
||||||
|
throw "cannot call methods on " + name + " prior to initialization; " + |
||||||
|
"attempted to call method '" + options + "'"; |
||||||
|
} |
||||||
|
if ( !$.isFunction( instance[options] ) ) { |
||||||
|
throw "no such method '" + options + "' for " + name + " widget instance"; |
||||||
|
} |
||||||
|
var methodValue = instance[ options ].apply( instance, args ); |
||||||
|
if ( methodValue !== instance && methodValue !== undefined ) { |
||||||
|
returnValue = methodValue; |
||||||
|
return false; |
||||||
|
} |
||||||
|
}); |
||||||
|
} else { |
||||||
|
this.each(function() { |
||||||
|
var instance = $.data( this, name ); |
||||||
|
if ( instance ) { |
||||||
|
instance.option( options || {} )._init(); |
||||||
|
} else { |
||||||
|
$.data( this, name, new object( options, this ) ); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
return returnValue; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
})( jQuery ); |
Loading…
Reference in new issue