reorg
This commit is contained in:
parent
d000f77098
commit
40e8e08690
3487 changed files with 39 additions and 21 deletions
|
|
@ -0,0 +1,97 @@
|
|||
/*!
|
||||
* jQuery UI Google Map 3.0-beta
|
||||
* http://code.google.com/p/jquery-ui-map/
|
||||
* Copyright (c) 2010 - 2011 Johan Säll Larsson
|
||||
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.map.js
|
||||
*/
|
||||
( function($) {
|
||||
|
||||
$.extend($.ui.gmap.prototype, {
|
||||
|
||||
/**
|
||||
* Extracts microdata from the HTML by specified namespace
|
||||
* @param ns:string
|
||||
* @param callback:function(microdata:object, element:jQuery object, iterator:int)
|
||||
*/
|
||||
microdata: function(ns, callback) {
|
||||
var self = this;
|
||||
$('[itemtype="{0}"]'.replace('{0}', ns)).each(function(i) {
|
||||
callback(self._traverse($(this), {'@type': self._resolveType($(this).attr('itemtype'))}), this, i);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Traverse through all child nodes
|
||||
* @param $el:jQuery Object
|
||||
* @param obj:Object
|
||||
*/
|
||||
_traverse: function(node, obj) {
|
||||
var self = this;
|
||||
node.children().each(function() {
|
||||
var $this = $(this), itemType = $this.attr('itemtype'), itemProp = $this.attr('itemProp');
|
||||
// skip check for itemscope since we are only interested in typed items
|
||||
if ( itemType != undefined && $this.children().length > 0 ) {
|
||||
if ( !obj[itemProp] ) {
|
||||
obj[itemProp] = [];
|
||||
}
|
||||
obj[itemProp].push({'@type': self._resolveType(itemType)});
|
||||
self._traverse($this, obj[itemProp][obj[itemProp].length-1]);
|
||||
} else if ( itemProp ) {
|
||||
if ( obj[itemProp] ) {
|
||||
// In case any property is duplicated
|
||||
if ( typeof obj[itemProp] === 'string' ) {
|
||||
var temp = obj[itemProp];
|
||||
obj[itemProp] = [];
|
||||
obj[itemProp].push(temp);
|
||||
}
|
||||
obj[itemProp].push(self._extract($this));
|
||||
} else {
|
||||
obj[itemProp] = self._extract($this);
|
||||
}
|
||||
} else {
|
||||
self._traverse($this, obj);
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
},
|
||||
|
||||
/**
|
||||
* Extract the proper value based on element attribute
|
||||
* @param $el:jQuery Object
|
||||
* @param className:string
|
||||
*/
|
||||
_extract: function($el) {
|
||||
if ( $el.attr('src') ) {
|
||||
return $el.attr('src');
|
||||
} else if ( $el.attr('href') ) {
|
||||
return $el.attr('href');
|
||||
} else if ( $el.attr('content') ) {
|
||||
return $el.attr('content');
|
||||
} else if ( $el.attr('datetime') ) {
|
||||
return $el.attr('datetime');
|
||||
} else if ( $el.text() ) {
|
||||
return $el.text();
|
||||
}
|
||||
return;
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes any url or prefix
|
||||
* @param $el:jQuery Object
|
||||
* @param className:string
|
||||
*/
|
||||
_resolveType: function(type) {
|
||||
if ( type.indexOf('http') > -1 ) {
|
||||
type = type.substr(type.lastIndexOf('/')+1).replace('?','').replace('#','');
|
||||
} else if ( type.indexOf(':') > -1 ) {
|
||||
type = type.split(':')[1];
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
} (jQuery) );
|
||||
Loading…
Add table
Add a link
Reference in a new issue