2009-08-21 4 views
1

Какое определение entire page в following line?Понимание предложения о запуске jQuery

Когда вся страница включаются с помощью PHP включает() или требует() функции, убедитесь в том, что сценарий код внутри <body> тега и не внутри <head>, так как вызов JQuery файла сценарий изнутри тег не работает для некоторых причина.

У меня возникли проблемы с настройкой кодов jQuery. Однако, мне удалось получить один для работы, поставив его в HEAD и следующий код

# 1 код

$(document).ready(function(){  
    --- code here---- 
}); 

Я не удалось получить какие-либо функции для работы. У меня были они внутри и снаружи кода №1. Ниже приведен пример.

# 2 Не работает код

function notEmpty() {       
     //put this in a function and call it when the user tries to submit 
     var tags = document.getElementById('tags').value; 
     if(tags == '' || tags == null) {   
      alert('Please enter one or more tags'); 
      return false; 
     } 
     return true; 
    }  

Я использую PHP, чтобы включить теги HTML, HEAD,/HEAD и BODY с помощью следующего кода в моем index.php.

# 3 Код, по которому источники HTML, голова и тело теги

include ('./official_content/html_head_body.php'); 
+0

Хороший вопрос. Документы здесь не очень специфичны. – JorenB

+0

Нет приемлемого ответа? – Fabian

+0

Благодарим за ответы! - Я принимаю ответ Воти из-за хорошего объяснения. –

ответ

3

Я считаю, что заявление подозреваемого. Я никогда не сталкивался с какой-либо проблемой, включая тег <script> для jQuery в документе <head> документа, как и любой другой тег <script>. Браузер не может знать ничего, что сделал PHP. Я подозреваю, что это просто искажение.

Чтобы ответить на ваш конкретный код, то, что вы написали в # 1, является абсолютно правильным. Передача функции в $(document).ready() позволяет вам вводить код, который будет запускаться, когда документ «готов» (что означает: когда загружена сама страница, без необходимости загрузки внешних ресурсов, таких как изображения, таблицы стилей и т. Д., Для которых вы не захотите придется ждать).

Что касается № 2, эта функция вообще не использует jQuery; он использует только встроенные функции JavaScript. Сказав это, он должен работать правильно, найдя элемент формы с id="tags" и показывая окно предупреждения, если этот элемент имеет пустой value. Как вы называете эту функцию? В мире JQuery, вы могли бы сделать что-то вроде этого:

$("#id-of-your-form").submit(notEmpty); 

Вы также можете переписать функцию notEmpty() использовать JQuery так:

function notEmpty() {{ 
    var tags = $("#tags").val(); 
    if (tags == '' || tags == null) { 
     alert('Please enter one or more tags'); 
     return false; 
    } 
    return true; 
} 

Опять же, остальная часть этой функции в настоящее время соединяет к jQuery вообще. Это нормально, так оно и есть.

Наконец, # 3 не имеет отношения к jQuery, так как эта обработка происходит в PHP, о которой JavaScript полностью не осознает.

+0

Я согласен. никогда не видел эту проблему и нашел «предложение» сомнительным –

2

Поместите источник jQuery в html_head_body.php и добавьте свою функцию в ваш «контент» php-файл.

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script> 
</head> 
<body> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 

     function notEmpty() {       
     //put this in a function and call it when the user tries to submit 
     var tags = document.getElementById('tags').value; 
     if(tags == '' || tags == null) {   
      alert('Please enter one or more tags'); 
      return false; 
     } 
     return true; 
     } 

    }); 
    </script>   
</body> 
</html> 
+0

У меня есть два '$ (document) .ready (function() {': один в HEAD и один в BODY. - ** Это может быть проблемой? * * –

+0

Nope, тот абсолютно прекрасный. – Fabian