committed fix to ajaxify that caused any newly appended anchors to not be

ajaxified, also tweaked ajaxify so that it only unbinds its own events
instead of clobbering any other events attached to anchors (#futureproof)
This commit is contained in:
Julian Lam
2013-04-23 09:51:18 -04:00
parent 4edc1cd3ea
commit 2b4e562e21

View File

@@ -19,7 +19,7 @@ var ajaxify = {};
content.innerHTML = templates[tpl_url];
exec_body_scripts(content);
ajaxify.enableAll();
}
return true;
@@ -28,22 +28,25 @@ var ajaxify = {};
return false;
}
$('document').ready(function() {
if (!window.history || !window.history.pushState) return; // no ajaxification for old browsers
ajaxify.enableAll = function() {
$('a').unbind('click', ajaxify.enable).bind('click', ajaxify.enable);
}
content = content || document.getElementById('content');
$('a').unbind('click').bind('click', function(ev) {
ajaxify.enable = function(ev) {
var url = this.href.replace(rootUrl +'/', '');
if (ajaxify.go(url)) {
ev.preventDefault();
return false;
}
}
$('document').ready(function() {
if (!window.history || !window.history.pushState) return; // no ajaxification for old browsers
});
content = content || document.getElementById('content');
ajaxify.enableAll();
});
function exec_body_scripts(body_el) {
@@ -54,8 +57,7 @@ var ajaxify = {};
// Argument body_el is an element in the dom.
function nodeName(elem, name) {
return elem.nodeName && elem.nodeName.toUpperCase() ===
name.toUpperCase();
return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
};
function evalScript(elem) {