Могу ли я использовать функцию в месте $( document).ready(function() {}
в jQuery?
Фактически я использую этот метод, и он работает нормально. Я прошу, чтобы это знало, что это проблема в будущем или нет? или это неправильный метод?
Например
function run_query
{
jquery code here
}
$(function(){ })
или $(document).ready(function(){})
определяют обработчики событий, которые запускаются в событии готовности документа. Документ готов к работе, когда весь html загружается на страницу, включая изображения. Вам не нужно определять готовый обработчик страницы, если вы не выполняете манипуляции с DOM или не определяете свои функции после загрузки содержимого.
Следует отметить, что если вы выполняете привязку к элементам напрямую, они должны быть загружены на страницу, прежде чем пытаться привязываться к ним. То, что я подразумеваю под прямым связыванием, - $("#id").on('event', handler)
. Вы также можете использовать делегирование, которое является чем-то вроде $(document).on('event', '#id', handler)
или $('altEl').on('event', 'el selector', handler)
в этом случае убедитесь, что загружен altel
. Обратите внимание, что элемент document
будет загружен временем выполнения javascript в <head>
.
.on
на документе, не является хорошей практикой. и $('el').on('event', 'el', func)
не является прямой привязкой и, тем не менее, она не будет работать без готовности DOM.
Вы должны проверить другие вопросы, которые были опубликованы о том, как javascript/html загружается и выполняется при отправке страницы клиенту... Помещение функции внутри $ (document) необходимо только тогда, когда код внутри функции зависит от элементы внутри HTML, которые еще не загружены.
Лучший способ сделать это - разместить свои скрипты в нижней части страницы, прямо перед концом тела
</body>
как тогда вам не нужно беспокоиться о том, что некоторые HTML-элементы еще не загружены, и это заставляет ваш сайт работать быстрее, так как ему не нужно ждать выполнения javascript для отображения страницы.