Skip to content

Instantly share code, notes, and snippets.

@criso
Forked from makinde/primer.js
Created September 16, 2010 14:36
Show Gist options
  • Save criso/582524 to your computer and use it in GitHub Desktop.
Save criso/582524 to your computer and use it in GitHub Desktop.
!function() {
var doc = document,
htm = doc.documentElement,
lct = null, // last click target
nearest = function(elm, tag) {
while (elm && elm.nodeName != tag) {
elm = elm.parentNode;
}
return elm;
};
// Listeners for our most common interations
htm.onclick = function(e) {
e = e || window.event;
lct = e.target || e.srcElement;
var elem = nearest(lct, 'A') || htm,
href = elem.getAttribute('ajaxify') || elem.href;
switch (elem.rel) {
case 'dialog':
case 'dialog-post':
Bootloader.loadComponents('dialog', function() {
Dialog.bootstrap(href, null, elem.rel == 'dialog');
});
break;
case 'async':
case 'async-post':
Bootloader.loadComponents('async', function() {
AsyncRequest.bootstrap(href, elem);
});
break;
default:
return;
}
return false;
};
htm.onsubmit = function(e) {
e = e || window.event;
var elem = e.target || e.srcElement;
if (!elem || elem.nodeName != 'FORM' || !elem.getAttribute('ajaxify')) {
return;
}
Bootloader.loadComponents('dom-form', function() {
bootstrap_form(elem, lct);
});
return false;
};
// Remove the no JS class, if it is here
htm.className = htm.className.replace('no_js', '');
}();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment