#javascript #jquery #html #include #head
#javascript #jquery #HTML #включить #заголовок
Вопрос:
каким-то образом мой простой оператор jQuery не работает, когда я включаю его в свою тему «head»-элемента, например :
<script src="js/test.js" type="text/javascript"></script>
но когда я использую его в своем «теле»-элементе, он просто отлично работает, как
<script>
$( "#testid" ).click(function() {
alert( "Handler for .click() called." );
});
</script>
Я уже проверил с помощью firebug, что мой test.js файл правильно включается на мой сайт. Так в чем я не прав? The test.js файл выглядит точно так же, как часть «script» выше, только без тегов script.
Любая идея приветствуется 🙂
Комментарии:
1. оберните свой код внутри события готовности документа ..@!
2. вы добавляете test.js после jquery минимальный файл??
3. Убедитесь, что вы включили его в head после jQuery.
4. Раджапрабху просто ударил по нему — он всегда включался после jquery btw.
5. Вы меняете две разные вещи (заголовок / тело и встроенный / внешний файл) и обвиняете неправильный.
Ответ №1:
Вы забываете сказать jQuery
, чтобы подождать, пока DOM ready
перед запуском вашего кода:
$(function() {
$( "#testid" ).click(function() {
alert( "Handler for .click() called." );
});
});
Когда вы включаете свой код в тег body после целевого элемента, ваш код будет работать. Однако, если вы включите его в раздел body перед целевым элементом или в раздел head, ваш код не будет работать. Поэтому рекомендуется всегда переносить свой код DOM ready
. DOM ready
может быть записан по-разному:
Все три из следующих синтаксисов эквивалентны:
$( document ).ready( handler )
$().ready( handler ) (this is not recommended)
$( handler )
Ознакомьтесь с документацией: http://api.jquery.com/ready /,
и учебное пособие: http://learn.jquery.com/using-jquery-core/document-ready /
Комментарии:
1. @Kris ваш комментарий предназначался для моего ответа или тот, который только что был удален?
Ответ №2:
Такое ощущение, что я разрываю Раджапрабху, но:
<script>
$(document).ready(function (){
$( "#testid" ).click(function() {
alert( "Handler for .click() called." );
});
});
</script>
Ответ №3:
Попробуйте это..
<script>
$(document).ready(function(){
$( "#testid" ).click(function() {
alert( "Handler for .click() called." );
});
});
</script>
Также убедитесь, что ваш скрипт был добавлен после jquery scipt.