JQuery вопросы для начинающих - PullRequest
0 голосов
/ 17 ноября 2009

Я закончил с ПК RegEx и перехожу к jQuery. ;)

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

Во-первых, я предпочитаю загружать все JS непосредственно перед тегом </body>. Это нормально с jQuery или он должен быть загружен в <head>? Не могу найти никаких обсуждений по этому вопросу.

А как насчет "дочерних" скриптов jQuery? Я предполагаю, что из-за $(document).ready(function() я могу загрузить их где угодно. Правильно?

Я заменю несколько старых скриптов, которые я использовал:

jQuery выполняет удаление кадров? Думая нет.

Может ли jQuery фокусироваться на формах / элементах? Думая да.

EDIT:

Извините за все лишние вопросы.

Под «дочерними сценариями» я понимал «все мои обычные сценарии», такие как:

<script type="text/javascript" src="tooltips.js"></script>
<script type="text/javascript" src="popups.js"></script>

Ответы [ 6 ]

3 голосов
/ 17 ноября 2009

Вот мое краткое изложение того, с чего начать с jQuery -

Загрузите документацию HTML и ознакомьтесь с тем, как устроена библиотека и какие команды находятся в вашем распоряжении. Локальная документация работает быстрее, а функция поиска работает очень хорошо.

Посмотрите на заметки об объекте события jQuery , поскольку они объясняют некоторые фундаментальные понятия о том, как работает модель события.

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

Подписаться на блоги jQuery. Это не только позволит вам быть в курсе возможных новых функций в будущих выпусках, но также обеспечит понимание областей инфраструктуры, с которыми вы не знакомы. Вот что я могу порекомендовать (без определенного порядка):

Чтобы ответить на ваши конкретные вопросы,

$(document).ready(function() { ... }) (также сокращение $(function() { ... });) будет выполнено, как только DOM загрузится. Это обычно , где вы хотите разместить код настройки для страницы.

Иметь другие скрипты на странице тоже хорошо. Если вам удобнее размещать ссылки на скрипты внизу страницы, тогда переходите к ним (хотя после первого посещения вашего сайта скрипты обычно кэшируются). Если вы можете получать определенные сценарии из CDN, например сценарий jQuery из API Google, используйте его, так как есть вероятность, что сценарий уже будет кэширован для клиента.

Я не видел ничего в ядре jQuery для создания фреймов, это либо то, что вам нужно реализовать самостоятельно, либо взгляните на множество уже написанных плагинов - Скорее всего, если это обычное явление сценарий и полезен, кто-то это уже написал.

Когда вы говорите, что элемент формы фокусируется, что вы имеете в виду? Вы имеете в виду, что если определенное условие выполнено, когда элемент имеет фокус, фокус переходит на другой / следующий элемент? Опять же, я не видел его в ядре jQuery, но взгляните на плагины, я думаю, это уже сделано. Или это может быть ваш первый проект плагина jQuery:)

1 голос
/ 17 ноября 2009

Вы должны действительно разделить уникальные вопросы на отдельные вопросы здесь. Но в целом главное, что нужно помнить, это то, что jQuery - это просто фреймворк поверх Javascript. Это просто делает вещи проще и (в основном) согласованными в разных браузерах.

Чтобы ответить на ваш первый вопрос, все ваши сценарии в конце <body> вполне подойдут. Если вы заключите все в вызовы $(document).ready(function(){});, это не будет иметь значения, потому что он ожидает, пока браузер не будет готов, чтобы Javascript начал действовать на DOM.

Кроме этого, просто прочитайте http://docs.jquery.com

1 голос
/ 17 ноября 2009

Из многих примеров, которые я видел в jQuery, размещение его в нижней части страницы является новой тенденцией.

Как только вы наберете $(document).ready, вы сможете размещать «дочерние сценарии» между открытыми скобками.

Я понятия не имею о разрушении фрейма, но если вы можете сделать это с помощью Javascript, ничто не помешает вам использовать этот же скрипт в jquery.

Вы должны сделать фокусировку на форму / элемент так же, как и в случае с самим javascript.

Веселитесь с jQuery и надеюсь, что это поможет некоторым.

0 голосов
/ 17 ноября 2009

Сценарии идут внизу документа по соображениям скорости. Пока ваш браузер загружает javascript, он больше ничего не делает (включая загрузку остальной части документа).

Вы можете загружать дочерние файлы Javascript где угодно, но опять же, нижняя часть страницы лучше всего подходит. Типичная настройка:

  1. Ссылка на jQuery (предпочтительно тот, что размещен в Google: http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js - это очень увеличивает вероятность того, что у пользователя уже есть кэшированная версия в браузере, что означает, что ему не нужно скачивать это снова
  2. Ссылка на дочерние объекты
  3. Звоните $ (документ) .ready

Для получения дополнительной информации о том, куда поместить файлы Javascript, используйте плагин ySlow и прочитайте все, что написано Стивом Соудерсом (на ум приходит «Даже более быстрые сайты», хотя это немного высокий уровень).

Удаление рамки должно быть достаточно простым, и jQuery поставляется с некоторыми классными селекторами и расширенной функциональностью для форм.

0 голосов
/ 17 ноября 2009

Ну, как правило, это хорошая идея, чтобы поместить все сценарии, которые вы можете в тегах. Это не является абсолютно необходимым, но это сделано, потому что A: Это облегчает их поиск, и B: Есть некоторые браузеры, или, по крайней мере, раньше, которые фактически отображали бы ваш javascript на экране, если сценарии были отключены .

Я не уверен, что вы подразумеваете под "дочерними" сценариями, но функции, объявленные "нормально" вне блока готовности документа, будут работать где угодно. Функции, объявленные внутри, будут доступны только внутри этого блока. Взгляните на это:

function bar() {
   alert('test');
}
$(document).ready(function() {
   var foo = function() {
         alert('do something!');
    };
   foo(); //works
   bar(); //works
});
bar(); //works
foo(); //error

jQuery делает элемент фокусировки следующим образом:

<input type="text" id="myInput"/> <button onclick="$('#myInput').focus();">Focus</button>

Что касается Framebusting, то любой скрипт, который вы сейчас используете, должен работать вместе с вашим jQuery, но на самом деле нет встроенной логики очистки кадров jQuery.

0 голосов
/ 17 ноября 2009

общий синтаксис для jquery:

$(document).ready(function(){

[insert all your jquery scripts to run at load here]

});

это должно идти в разделе заголовка страницы и затем запускается, когда документ готов к запуску dom

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