JQuery / JS позиционирования - PullRequest
1 голос
/ 08 января 2011

Признаюсь, я не знаю, что лучше.

Обычно я помещаю библиотеку jquery в заголовок веб-страницы. Я делаю то же самое для любых плагинов jquery или функций javascript.

Что меня интересует, так это где разместить селекторы. Внизу, до конца тела тега. Или перед кодом сайта.

Пример:

<div id="somediv">stuff inside</div>
<script language="javascript" type="text/javascript">
$(function (){ 

  $("#somediv").hide();

});
</script>

Как вы видите, я помещаю селектор под HTML. Я видел это в обоих направлениях, но мне любопытно, есть ли лучший способ. И будет ли это так же для всех связанных с javascript функций и плагинов.

Причина в том, что иногда IE жалуется на размещение. В то время как другие браузеры кажутся более снисходительными, или им все равно.

Ответы [ 3 ]

1 голос
/ 08 января 2011

Если вы разместите ваши селекторы внутри:

$(function() {
     // my DOM selection
});

... тогда это не имеет значения, поскольку это ярлык для вызова метода .ready() jQuery , который обеспечивает загрузку элементов DOM до запуска кода внутри.

Если ваш код позиционируется после элементов, то вы можете обойтись без .ready().

Другой вариант - поместить ваш код в обработчик window.onload. Недостатком этого является то, что ему нужно будет дождаться загрузки всего контента, включая изображения, прежде чем он запустится. Наверное, не то, что нужно.

0 голосов
/ 08 января 2011

Оба будут работать нормально, но если ваша страница становится сложной, может показаться, что она загружается медленно и выглядит вяло; поэтому, если переменная область видимости не является проблемой, вы можете рассмотреть вопрос размещения сценариев внизу ваших страниц, что будет означать импорт jQuery с последующим запуском остальных ваших сценариев в пределах $ (function () {})

0 голосов
/ 08 января 2011

Любой способ работает, если он у вас внутри обработчика document.ready, как у вас уже есть с $(function (){ ... });. Без оболочки, у вас есть , чтобы разместить ее после элементов, например, в конце <body>.

В любом случае, убедитесь, что блок <script> происходит после включения jQuery (и любых плагинов, в которых нуждается код).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...