2012-07-02 2 views
1

Следующая на DOM готовой функции, если у меня есть 2 функции, которые используют эту декларацию:Правильное использование функции OnDOMReady

$(document).ready(function(){my Function here}); 

Теперь я должен использовать две метки, один для каждой функции или я должен объявить обе функции в один из этих тегов, как внутри: $(document).ready(function(){my two Functions here});?

<script> 
    $(document).ready(function(){my Function here}); 
</script> 

Спасибо

+0

Что вы подразумеваете под "тегами"? Сначала я думал, что вы имеете в виду '

0

Используйте один. Делает код более удобным для управления, чтобы вы могли видеть все функции, вызываемые в одном месте.

+0

Используя этот принцип, который легко справляется, если он все в одном месте делает большие функции (многие строки кода, многие условные ветви и дочерние элементы). Большие функции являются индикатором отсутствия модуляции кода и отсутствия инкапсуляции проблем. Это, в свою очередь, приводит к коду спагетти. Правильный термин для кода спагетти OOP - спагетти и фрикадельки :-). –

+0

Я не имею в виду написать здесь функции - поместите вызовы функций здесь. Вызов функции обычно является одной строкой? Это также зависит от проекта. – matpol

+0

Я не имел в виду добавление кода функции целиком. Но в сложных проектах или в течение длительного времени требования к проектам технического обслуживания имеют тенденцию к наращиванию, и вы начинаете требовать привязать некоторые события только в некоторых случаях и должны передавать некоторые параметры для некоторых типов объектов и некоторые другие параметры для других типов объектов. Вы в конечном итоге пишете 'if' s, чтобы справиться с этим, и они быстро превращаются в спагетти. –

1

Вы можете сделать несколько вызовов $(document).ready() с различными функциями. Все они будут связаны с этим событием, если только момент, когда вы их включили, после события (включая их через AJAX с $.getScript()).

Вы не должны включать ваш код непосредственно в HTML.

Вставьте его в один или несколько внешних файлов и укажите их с помощью src.

Таким образом, они могут легко получить кеширование, и пользователи не будут повторно загружать один и тот же контент на каждую загрузку страницы.

Также вы можете структурировать свои готовые к использованию файлы в разных целях. Один инициализирует внешние плагины. Один запускает некоторые привязки событий. Один из них применяет валидации.

Наличие их в разных файлах означает, что вы также можете включить файлы при необходимости. onReady.ShoppingCart.js может потребоваться на всех страницах в магазине, но не на страницах CMS этого магазина, а не на контрольной полосе.

+0

благодарю вас за ваш ответ. В. Если у меня есть функция, инициализирующая уже включенную скрипт, такой как: . Должен ли этот скрипт быть включен в html? –

1

Цель ready() (против встроенного onload="") - разрешить привязку нескольких обработчиков к одному событию.

Итак, просто используйте самые простые/понятные вам, было бы глупо запретить вам связывать несколько раз, когда интернет воевал так много, чтобы избавиться от использования встроенных обработчиков.

+0

спасибо, хорошая точка –

Смежные вопросы