|
- // Jcrop jQuery plugin function
- $.fn.Jcrop = function(options,callback){
- options = options || {};
-
- var first = this.eq(0).data('Jcrop');
- var args = Array.prototype.slice.call(arguments);
-
- // Return API if requested
- if (options == 'api') { return first; }
-
- // Allow calling API methods (with arguments)
- else if (first && (typeof options == 'string')) {
-
- // Call method if it exists
- if (first[options]) {
- args.shift();
- first[options].apply(first,args);
- return first;
- }
-
- // Unknown input/method does not exist
- return false;
- }
-
- // Otherwise, loop over selected elements
- this.each(function(){
- var t = this, $t = $(this);
- var exists = $t.data('Jcrop');
- var obj;
-
- // If Jcrop already exists on this element only setOptions()
- if (exists)
- exists.setOptions(options);
-
- else {
-
- if (!options.stageConstructor)
- options.stageConstructor = $.Jcrop.stageConstructor;
-
- options.stageConstructor(this,options,function(stage,options){
- var selection = options.setSelect;
- if (selection) delete(options.setSelect);
-
- var obj = $.Jcrop.attach(stage.element,options);
-
- if (typeof stage.attach == 'function')
- stage.attach(obj);
-
- $t.data('Jcrop',obj);
-
- if (selection) {
- obj.newSelection();
- obj.setSelect(selection);
- }
-
- if (typeof callback == 'function')
- callback.call(obj);
- });
- }
-
- return this;
- });
- };
|