Skip to content

Instantly share code, notes, and snippets.

@ajpiano
Forked from rwaldron/jquery.pollute.js
Created May 4, 2010 22:11
Show Gist options
  • Save ajpiano/390100 to your computer and use it in GitHub Desktop.
Save ajpiano/390100 to your computer and use it in GitHub Desktop.
(function ($) {
$.fn.pollute = function (pollution) {
var pollutants = {
air:"SMOAK",
water:"OIL",
noise:"BLAH"
}
function emit(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);
// 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);
}
});
}
})(jQuery);
//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!
// Yippee!!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment