Форум программистов, компьютерный форум, киберфорум
Наши страницы

jQuery

Войти
Регистрация
Восстановить пароль
 
zmanz
1 / 1 / 0
Регистрация: 08.08.2014
Сообщений: 158
#1

Почему не работает очень простая функция на JQuery - jQuery

18.10.2017, 10:24. Просмотров 132. Ответов 9
Метки нет (Все метки)

Здравствуйте.

Не могу понять, как мне создать функцию в файле scripts.js, чтобы она выводилась в документе. Подскажите пожалуйста.

Файл index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?header('Content-Type: text/html; charset= utf-8');?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Тестовая</title>
    <!--<link href="/styles.css?num=1" type="text/css" rel="stylesheet" />-->
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script src="/scripts.js"></script>
</head>
<body class="home">
    <div class="main-content-block">
        Text
    </div> 
    <script>
    test(25);   
    </script>
</body>
</html>
Файл scripts.js
PHP
1
2
3
4
5
6
7
$(document).ready(function() {
 
    function test(a) {
        alert(a);
    };
    
})
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2017, 10:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не работает очень простая функция на JQuery (jQuery):

Не работает простая функция - JavaScript
Ребят, помогите плз, уже голову сломал. function openCloseNavi() { var obj = document.getElementById('menu_docs'); var a = true; ...

Не работает простая функция - jQuery
смысл таков: функция должна быть такова ; текущая ссылка, с адресом на картинку, нужно внутрь этой ссылки вставить эту же...

Почему не работает javascript (jquery)? - jQuery
Подскажите в чем может быть ошибка, если не корректно работает javascript на сайте. Пример - вот так работает, если несколько раз...

Почему не работает jquery скрипт - jQuery
здравствуйте, подскажите пожалуйста, почему в скрипте меню работает а куки нет) плагин кук подключен через &lt;script...

Не работает функция замены атрибута jquery - JavaScript
Здравствуйте! На странице есть ссылка и список выбора. &lt;a href=&quot;http://mysite.ru&quot; class=&quot;myclass&quot; rel=&quot;nofollow&quot;...

Ajax не работает функция (preventDefault) - jQuery - jQuery
Добрый день, подскажите, почему не отсылает форму? --- $('form#form2').submit(function(e) { e.preventDefault(); var msg =...

9
Balanaar
700 / 641 / 241
Регистрация: 11.07.2016
Сообщений: 1,968
18.10.2017, 10:38 #2
Во-первых, вы объявляете вашу функцию не в глобальной области видимости. Она будет доступна только внутри анонимной функции, переданной в обработчик $(document).ready(). Во-вторых, ваша функция объявляется только после полной готовности документа. Поэтому её вызов на 17й строке вашего index.php не сработает, даже если бы она была там видна.
Вынесите объявление вашей функции за пределы $(document).ready()
Javascript
1
2
3
function test(a) {
  alert(a);
};
0
zmanz
1 / 1 / 0
Регистрация: 08.08.2014
Сообщений: 158
18.10.2017, 12:30  [ТС] #3
Спасибо, я вас понял, у меня на самом деле немного другой случай, скрипт подключается в конце в самом. Мне в файл с javascript скриптами, нужно добавить функцию, чтобы я ее мог вызвать перед подключением скрипта. Как это сделать правильно?

Можно подключить отдельный файл перед функцией, можно наверное сделать как то отложенный запуск через какое то время, но как будет по правильному?

Этот ваш вариант для моего случая не подходит

Файл index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?header('Content-Type: text/html; charset= utf-8');?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Тестовая</title>
    <!--<link href="/styles.css?num=1" type="text/css" rel="stylesheet" />-->
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body class="home">
    <div class="main-content-block">
        Text
    </div> 
    <script>
    test(25);   
    </script>
    <script src="/scripts.js"></script>
</body>
</html>
Файл scripts.js
PHP
1
2
3
    function test(a) {
        alert(a);  
})
0
j2FunOnly
18.10.2017, 12:32
  #4

Не по теме:


Мне в файл с javascript скриптами, нужно добавить функцию, чтобы я ее мог вызвать перед подключением файла с javascript скриптами.

0
zmanz
1 / 1 / 0
Регистрация: 08.08.2014
Сообщений: 158
18.10.2017, 12:46  [ТС] #5
Мне в файл scripts.js, нужно добавить функцию, чтобы я ее мог вызвать перед подключением файла scripts.js, вот так лучше будет

j2FunOnly, лучше помогли бы, то что я написал и так понятно, хотя написал я прикольно конечно, спешил
0
Balanaar
700 / 641 / 241
Регистрация: 11.07.2016
Сообщений: 1,968
18.10.2017, 14:31 #6
А как вы хотите вызывать функцию, которая ещё не объявлена?
0
j2FunOnly
the hardway first
541 / 526 / 246
Регистрация: 05.06.2015
Сообщений: 1,252
18.10.2017, 15:27 #7
zmanz, и хотелось бы узнать зачем? Какие цели вы преследуете?
0
2849141
100 / 77 / 37
Регистрация: 06.10.2015
Сообщений: 204
18.10.2017, 20:31 #8
zmanz, Почему Вам вдруг понадобилось опустить подключение scripts.js из head в конец body?
0
j2FunOnly
the hardway first
541 / 526 / 246
Регистрация: 05.06.2015
Сообщений: 1,252
18.10.2017, 21:44 #9
2849141, есть мнение что поместив скрипты перед закрывающим тегом </body> ускорит отображение страницы посетителю, ибо браузер останавливает рендер страницы на время выполнения JS кода. 1, 2 не хочу ни перепечатывать, ни переводить.

А ещё говорят что это уходит в прошлое с атрибутами async и defer из HTML5, а ещё говорят что скоро повсеместно будет HTTP2.0. И да говорят в Москве кур доЯт.
0
Уф
450 / 441 / 181
Регистрация: 13.07.2015
Сообщений: 1,304
Завершенные тесты: 1
18.10.2017, 22:59 #10
просто у тебя два взаимоисключающих требования
1. хочу вызвать функцию в начале страницы
2. объявить её хочу в конце страницы
как её увидеть из начала когда интерпретатор браузера еще не дошел до конца? парадокс.
в хроме в консоли есть вкладка networks, можешь там посмотреть время загрузки страницы
поэкспериментируй с подключением скриптов вначале и в конце, думаю разницу увидишь только если сидеть с калькулятора
PHPHTML
1
2
3
4
5
<body>
<script> $(document).ready(function() { azaza(); }) </script>
...вся твоя страница
<script src="script.js"></script>
</body>
в самом скрипте просто пиши
Javascript
1
2
3
function azaza(){
  alert('Привет');
}
в итоге браузер быстро пробежит строчку запуска которая станет ждать окончания загрузки страницы, и выполнится только когда уже твой скрипт загрузится в конце
0
18.10.2017, 22:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2017, 22:59
Привет! Вот еще темы с ответами:

почему не работает функция? - JavaScript
Всем привет, Только начала изучение javascript, поэтому много чего не получается, и могу задавать глупые вопросы)) Уже сломала всю...

Почему не работает функция? - JavaScript
Почему не работает функция? function CircleMove() { document.getElementById(&quot;crazycircle&quot;).onmouseover = function(event) { ...

Почему здесь не работает скрипт, очень простой, ошибок на мой взгляд вроде нет - JavaScript
var login = prompt('Введите логин',''); If (login == 'Черный властелин') { var pass = prompt('Введите...

Почему в Нетскейпе функция function write_to_layer не работает? - JavaScript
function write_to_layer(lname, str) { if (lname=='Navig'){ str = '&lt;font class='sag'&gt;'+str+'&lt;/font&gt;' } var Brwsr =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru