Skip to content

Instantly share code, notes, and snippets.

@jethrolarson
Forked from rwaldron/jquery.pollute.js
Created May 5, 2010 05:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jethrolarson/390411 to your computer and use it in GitHub Desktop.
Save jethrolarson/390411 to your computer and use it in GitHub Desktop.
$.fn.pollute = function (pollution) {
pollutants = {
air:"SMOAK",
water:"OIL",
noise:"BLAH"
}
window.emit = function(type) {
var i = Math.round(Math.random()*1000);
while(--i) {
pollution[pollutants[type]+Math.round(Math.random()*100000)] = Math.round(Math.random()*1000);
}
delete pollution[type];
};
// automatically pollute the environment with a random amount of pollution, if the user wants to
pollution.type && pollutants[pollution.type] && emit(pollution.type);
// then we extend the pollution object to the window, nice!
$.extend(window, pollution);
//Pollute the Object prototype with the polution from the window
Object.prototype = window;
// make sure we're really nasty, and pollute all the elements as well.
return this.each(function () {
for ( var junk in pollution ) {
if ( typeof pollution[junk] === 'object' ) {
$(this).pollute(pollution[junk]);
return;
}
$.extend(this, pollution);
}
});
}
//Usage
$(document).pollute({
type:'air', //AUTO POLLUTION!!!!
foo: 'bar',
more: {
crap: 'baz',
yuck: 'junk'
},
badass: window
});
// Automatically adds foo to the global scope!
// As an added bonus the junk gets put on EVERY MATCHED ELEMENT in the collection as well!
// Removed the function wrapper to make sure we clutter the $
// Yippee!!
//
@rwaldron
Copy link

rwaldron commented May 5, 2010

These are brilliant additions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment