- Timestamp:
- Feb 4, 2014, 10:46:10 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/LCAS/tags/2.3.0/admin/template/js/jquery.metadata.js
r27129 r27186 2 2 * Metadata - jQuery plugin for parsing metadata from elements 3 3 * 4 * Copyright (c) 2006 John Resig, Yehuda Katz, J �örn Zaefferer, Paul McLanahan4 * Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan 5 5 * 6 6 * Dual licensed under the MIT and GPL licenses: 7 7 * http://www.opensource.org/licenses/mit-license.php 8 8 * http://www.gnu.org/licenses/gpl.html 9 *10 * Revision: $Id$11 9 * 12 10 */ … … 19 17 * 20 18 * attr: Inside an attribute. The name parameter indicates *which* attribute. 21 * 19 * 22 20 * class: Inside the class attribute, wrapped in curly braces: { } 23 * 21 * 24 22 * elem: Inside a child element (e.g. a script tag). The 25 23 * name parameter indicates *which* element. 26 * 24 * 27 25 * The metadata for an element is loaded the first time the element is accessed via jQuery. 28 26 * 29 27 * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements 30 28 * matched by expr, then redefine the metadata type and run another $(expr) for other elements. 31 * 29 * 32 30 * @name $.metadata.setType 33 31 * … … 36 34 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" 37 35 * @desc Reads metadata from the class attribute 38 * 36 * 39 37 * @example <p id="one" class="some_class" data="{item_id: 1, item_label: 'Label'}">This is a p</p> 40 38 * @before $.metadata.setType("attr", "data") 41 39 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" 42 40 * @desc Reads metadata from a "data" attribute 43 * 41 * 44 42 * @example <p id="one" class="some_class"><script>{item_id: 1, item_label: 'Label'}</script>This is a p</p> 45 43 * @before $.metadata.setType("elem", "script") 46 44 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" 47 45 * @desc Reads metadata from a nested script element 48 * 46 * 49 47 * @param String type The encoding type 50 48 * @param String name The name of the attribute to be used to get metadata (optional) … … 62 60 type: 'class', 63 61 name: 'metadata', 64 cre: /( {.*})/,62 cre: /(\{.*\})/, 65 63 single: 'metadata' 66 64 }, … … 70 68 }, 71 69 get: function( elem, opts ){ 72 var settings = $.extend({},this.defaults,opts); 70 var data, m, e, attr, 71 settings = $.extend({},this.defaults,opts); 73 72 // check for empty string in single property 74 if ( !settings.single.length ) settings.single = 'metadata';75 76 vardata = $.data(elem, settings.single);73 if ( !settings.single.length ) { settings.single = 'metadata'; } 74 75 data = $.data(elem, settings.single); 77 76 // returned cached data if it already exists 78 if ( data ) return data;79 77 if ( data ) { return data; } 78 80 79 data = "{}"; 81 82 if ( settings.type == "class" ) { 83 var m = settings.cre.exec( elem.className ); 84 if ( m ) 85 data = m[1]; 86 } else if ( settings.type == "elem" ) { 87 if( !elem.getElementsByTagName ) 88 return undefined; 89 var e = elem.getElementsByTagName(settings.name); 90 if ( e.length ) 91 data = $.trim(e[0].innerHTML); 92 } else if ( elem.getAttribute != undefined ) { 93 var attr = elem.getAttribute( settings.name ); 94 if ( attr ) 95 data = attr; 80 81 if ( settings.type === "class" ) { 82 m = settings.cre.exec( elem.className ); 83 if ( m ) { data = m[1]; } 84 } else if ( settings.type === "elem" ) { 85 if( !elem.getElementsByTagName ) { return undefined; } 86 e = elem.getElementsByTagName(settings.name); 87 if ( e.length ) { data = $.trim(e[0].innerHTML); } 88 } else if ( elem.getAttribute !== undefined ) { 89 attr = elem.getAttribute( settings.name ); 90 if ( attr ) { data = attr; } 96 91 } 97 98 if ( data.indexOf( '{' ) <0 ) 99 data = "{" + data + "}"; 100 92 93 if ( data.indexOf( '{' ) <0 ) { data = "{" + data + "}"; } 94 101 95 data = eval("(" + data + ")"); 102 96 103 97 $.data( elem, settings.single, data ); 104 98 return data;
Note: See TracChangeset
for help on using the changeset viewer.