mirror of https://github.com/metafizzy/isotope
David DeSandro
11 years ago
3 changed files with 118 additions and 16 deletions
@ -0,0 +1,61 @@
|
||||
/** |
||||
* Packery Item Element |
||||
**/ |
||||
|
||||
( function( window ) { |
||||
|
||||
'use strict'; |
||||
|
||||
// -------------------------- Item -------------------------- //
|
||||
|
||||
function itemDefinition( Outlayer ) { |
||||
|
||||
// sub-class Outlayer Item
|
||||
function Item() { |
||||
Outlayer.Item.apply( this, arguments ); |
||||
} |
||||
|
||||
Item.prototype = new Outlayer.Item(); |
||||
|
||||
Item.prototype._create = function() { |
||||
// assign id, used for original-order sorting
|
||||
this.id = this.layout.itemGUID++; |
||||
Outlayer.Item.prototype._create.call( this ); |
||||
this.sortData = {}; |
||||
}; |
||||
|
||||
Item.prototype.updateSortData = function() { |
||||
// default sorters
|
||||
this.sortData.id = this.id; |
||||
// for backward compatibility
|
||||
this.sortData['original-order'] = this.id; |
||||
this.sortData.random = Math.random(); |
||||
// go thru getSortData obj and apply the sorters
|
||||
var getSortData = this.layout.options.getSortData; |
||||
for ( var key in getSortData ) { |
||||
var sorter = getSortData[ key ]; |
||||
this.sortData[ key ] = sorter( this.element, this ); |
||||
} |
||||
}; |
||||
|
||||
return Item; |
||||
|
||||
} |
||||
|
||||
// -------------------------- transport -------------------------- //
|
||||
|
||||
if ( typeof define === 'function' && define.amd ) { |
||||
// AMD
|
||||
define( [ |
||||
'outlayer/outlayer' |
||||
], |
||||
itemDefinition ); |
||||
} else { |
||||
// browser global
|
||||
window.Isotope = window.Isotope || {}; |
||||
window.Isotope.Item = itemDefinition( |
||||
window.Outlayer |
||||
); |
||||
} |
||||
|
||||
})( window ); |
Loading…
Reference in new issue