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

ajaxified
v1.18.x
Julian Lam 12 years ago
parent 4edc1cd3ea
commit 413dc2c0f0

@ -19,7 +19,7 @@ var ajaxify = {};
content.innerHTML = templates[tpl_url]; content.innerHTML = templates[tpl_url];
exec_body_scripts(content); exec_body_scripts(content);
ajaxify.enableAll();
} }
return true; return true;
@ -28,22 +28,25 @@ var ajaxify = {};
return false; return false;
} }
ajaxify.enableAll = function() {
$('a').unbind('click', ajaxify.enable).bind('click', ajaxify.enable);
}
ajaxify.enable = function(ev) {
var url = this.href.replace(rootUrl +'/', '');
if (ajaxify.go(url)) {
ev.preventDefault();
return false;
}
}
$('document').ready(function() { $('document').ready(function() {
if (!window.history || !window.history.pushState) return; // no ajaxification for old browsers if (!window.history || !window.history.pushState) return; // no ajaxification for old browsers
content = content || document.getElementById('content'); content = content || document.getElementById('content');
$('a').unbind('click').bind('click', function(ev) { ajaxify.enableAll();
var url = this.href.replace(rootUrl +'/', '');
if (ajaxify.go(url)) {
ev.preventDefault();
return false;
}
});
}); });
function exec_body_scripts(body_el) { function exec_body_scripts(body_el) {
@ -54,27 +57,26 @@ var ajaxify = {};
// Argument body_el is an element in the dom. // Argument body_el is an element in the dom.
function nodeName(elem, name) { function nodeName(elem, name) {
return elem.nodeName && elem.nodeName.toUpperCase() === return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
name.toUpperCase();
}; };
function evalScript(elem) { function evalScript(elem) {
var data = (elem.text || elem.textContent || elem.innerHTML || "" ), var data = (elem.text || elem.textContent || elem.innerHTML || "" ),
head = document.getElementsByTagName("head")[0] || head = document.getElementsByTagName("head")[0] ||
document.documentElement, document.documentElement,
script = document.createElement("script"); script = document.createElement("script");
script.type = "text/javascript"; script.type = "text/javascript";
try { try {
// doesn't work on ie... // doesn't work on ie...
script.appendChild(document.createTextNode(data)); script.appendChild(document.createTextNode(data));
} catch(e) { } catch(e) {
// IE has funky script nodes // IE has funky script nodes
script.text = data; script.text = data;
} }
head.insertBefore(script, head.firstChild); head.insertBefore(script, head.firstChild);
head.removeChild(script); head.removeChild(script);
}; };
// main section of function // main section of function

Loading…
Cancel
Save