Skip to content

Instantly share code, notes, and snippets.

@sapegin
Created December 6, 2011 11:36
Show Gist options
  • Save sapegin/1437893 to your computer and use it in GitHub Desktop.
Save sapegin/1437893 to your computer and use it in GitHub Desktop.
Components initialization
(function() {
initComponents({
pony: function(container) {
}
});
})();
/**
* Initialize components
*
* <div data-component="pony"></div>
*/
function initComponents(funcs) {
function getContainers() {
if (document.querySelectorAll) {
return document.querySelectorAll('[data-component]');
}
else {
var elems = document.getElementsByTagName('*'),
containers = [];
for (var elemIdx = 0, elemCnt = elems.length; elemIdx < elemCnt; elemIdx++) {
var elem = elems[elemIdx];
if (elem.getAttribute('data-component')) {
containers.push(elem);
}
}
return containers;
}
}
var containers = getContainers();
for (var containerIdx = 0, containerCnt = containers.length; containerIdx < containerCnt; containerIdx++) {
var container = containers[containerIdx],
component = container.getAttribute('data-component');
if (funcs[component]) {
funcs[component](container);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment