Для начала
jQuery = $.noConflict(); // удалить глобалку jQ, делать сразу после запроса к файлу jquery.min.js
Некоторые древние деды нашей профессии любили свою главную библиотеку в доллар совать. Не важно - jquery это или нет. Бывает что две библиотеки одна заменяет другую и не работают потом обе.
потом вот так:
(function ($, App) {
// ваш код
$(function () {
// ваш код после DOM-ready
});
})(jQuery, App = window.App || {});
* тут у вас будет глобальная переменная App в которую можно что-нибудь класть. Например, готовые слайдеры или другие важные вещи, чтобы потом выводить их в консоль или связывать друг с другом
* важно помнить что высота некоторых элементов с overflow: hidden появится только через несколько секунд после загрузки страницы, когда все элементы будут отрисованы. То есть не спасает даже ondomready - нужно делать задержку на пару секунд или плакать в форум разрабам jQuery, давно пора это сделать уже
* иногда полезно работать с onload для
<script src="">
чтобы поймать событие когда скрипт будет подключен к сайту, но еще до того как будет закончен ondomready
* и я вижу у вас в коде $(document).change() - не знаю что у вас там конкретно происходит, смотреть надо, но я бы на $(document) вешал только две вещи (вообще только две) - mousemove, mouseup - если они требуются. Mousemove - всевозможные ползунки, mouseup - отпускание зажатой ранее клавиши мыши для торопливого пользователя, который любит мышкой двигать с зажатой кнопкой.
Вешать onchange на документ... интересно, сколько сотен раз выполняется ваше действие?