Вот тут видно, что XHR sortable-table.js загрузился до события load (красная линия), а значит в момент события он выполняется. При этом сам динамический контент (таблица, синий блок profiles_rank/) еще только загружается, а значит его пока нет в DOM.
Иногда работает, когда контент появляется раньше, чем срабатывает инициализация библиотеки сортировки. Подгружать скрипт сортировки асинхронно не нужно, он уже в себе ждет когда страница и все ресурсы загрузятся полностью. Но если он начнет выполняться (инициализация LightTableSorter.init()), пока в DOM еще не погрузилась таблица (точнее заголовки), то вот тут будет пусто, и никакие клики не забиндятся
var ths = document.getElementsByTagName('th');
Arr.forEach.call(ths, function (th) {th.onclick = onClickEvent;});
Вам надо провести "ручную" инициализацию после подгрузки таблицы. К сожалению, эта библиотека написана так, что вы не сможете вызывать код в Immediately-Invoked Function Expression (function (document) {})(document); без модификации библиотеки
Удалите этот код:
document.addEventListener('readystatechange', function(){
if (document.readyState === 'complete') LightTableSorter.init();
}, false);
а вместо него добавьте этот:
window.LightTableSorter = LightTableSorter;
Теперь вы можете после загрузки данных через load выполнить инициализацию. В момент вызова callback function таблица уже должна быть вставлена. Только оберните в jquery.ready
$(function() {
$('#to_load').load('/stat/rating/profiles_rank/ #for_including1', function () {
window.LightTableSorter.init();
});
});