Mercurial > hg > env-test-daniele
annotate johndyer-mediaelement-13fa20a/src/js/jeesh-extras.js @ 25:4a4bd554b4c1 tip
Closing this sub branch.
author | Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk> |
---|---|
date | Mon, 25 Mar 2013 14:02:54 +0000 |
parents | 032bc65ebafc |
children |
rev | line source |
---|---|
gyorgy@0 | 1 (function($) { |
gyorgy@0 | 2 |
gyorgy@0 | 3 // borrowed from jQuery (no deep, bad fake object detection) |
gyorgy@0 | 4 $.ender({extend: function() { |
gyorgy@0 | 5 var options, name, src, copy, |
gyorgy@0 | 6 target = arguments[0] || {}, |
gyorgy@0 | 7 i = 1, |
gyorgy@0 | 8 length = arguments.length; |
gyorgy@0 | 9 |
gyorgy@0 | 10 // Handle case when target is a string or something (possible in deep copy) |
gyorgy@0 | 11 if ( typeof target !== "object" && typeof target !== "function" ) { |
gyorgy@0 | 12 target = {}; |
gyorgy@0 | 13 } |
gyorgy@0 | 14 |
gyorgy@0 | 15 for ( ; i < length; i++ ) { |
gyorgy@0 | 16 // Only deal with non-null/undefined values |
gyorgy@0 | 17 if ( (options = arguments[ i ]) != null ) { |
gyorgy@0 | 18 // Extend the base object |
gyorgy@0 | 19 for ( name in options ) { |
gyorgy@0 | 20 src = target[ name ]; |
gyorgy@0 | 21 copy = options[ name ]; |
gyorgy@0 | 22 |
gyorgy@0 | 23 // Prevent never-ending loop |
gyorgy@0 | 24 if ( target === copy ) { |
gyorgy@0 | 25 continue; |
gyorgy@0 | 26 } |
gyorgy@0 | 27 |
gyorgy@0 | 28 if ( copy !== undefined ) { |
gyorgy@0 | 29 target[ name ] = copy; |
gyorgy@0 | 30 } |
gyorgy@0 | 31 } |
gyorgy@0 | 32 } |
gyorgy@0 | 33 } |
gyorgy@0 | 34 |
gyorgy@0 | 35 // Return the modified object |
gyorgy@0 | 36 return target; |
gyorgy@0 | 37 }}); |
gyorgy@0 | 38 |
gyorgy@0 | 39 // outerWidth |
gyorgy@0 | 40 $.ender({outerWidth: function(margin) { |
gyorgy@0 | 41 var fp = parseFloat; |
gyorgy@0 | 42 return fp(this.width()) |
gyorgy@0 | 43 + (margin ? fp(this.css('margin-left')) + fp(this.css('margin-right')) : 0) |
gyorgy@0 | 44 + fp(this.css('padding-left'))+ fp(this.css('padding-right')) |
gyorgy@0 | 45 + fp(this.css('border-left-width')) + fp(this.css('border-right-width')) |
gyorgy@0 | 46 ; |
gyorgy@0 | 47 }}, true); |
gyorgy@0 | 48 |
gyorgy@0 | 49 })(ender); |