2011-01-08 2 views
1

Я буду признаваться, я не знаю, что лучше.jquery/JS позиционирование

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

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

Пример:

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

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

}); 
</script> 

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

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

ответ

1

Если вы поместите селекторы внутри:

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

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

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

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

0

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

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

0

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

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