new TodoApp({
elem: $('.todo')
});
скрипт может быть вызван до загрузки дерева, а не после.
для того, чтобы уйти от этого, нужно вынести инициализацию в
$(function () { /*КОД*/ });
и даже не в неё, а в :
jQuery(function ($) { /*КОД*/ });
потому что $ - это не всегда jQuery