Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
zmanz
2 / 2 / 17
Регистрация: 08.08.2014
Сообщений: 162
#1

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

18.10.2017, 10:24. Просмотров 149. Ответов 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):

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

Не работает простая функция
Ребят, помогите плз, уже голову сломал. function openCloseNavi() { var obj =...

Почему не работает jquery скрипт
здравствуйте, подскажите пожалуйста, почему в скрипте меню работает а куки...

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

Не работает функция замены атрибута jquery
Здравствуйте! На странице есть ссылка и список выбора. &lt;a...

Ajax не работает функция (preventDefault) - jQuery
Добрый день, подскажите, почему не отсылает форму? ---...

9
Balanaar
833 / 742 / 368
Регистрация: 11.07.2016
Сообщений: 2,218
18.10.2017, 10:38 #2
Во-первых, вы объявляете вашу функцию не в глобальной области видимости. Она будет доступна только внутри анонимной функции, переданной в обработчик $(document).ready(). Во-вторых, ваша функция объявляется только после полной готовности документа. Поэтому её вызов на 17й строке вашего index.php не сработает, даже если бы она была там видна.
Вынесите объявление вашей функции за пределы $(document).ready()
Javascript
1
2
3
function test(a) {
  alert(a);
};
0
zmanz
2 / 2 / 17
Регистрация: 08.08.2014
Сообщений: 162
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
2 / 2 / 17
Регистрация: 08.08.2014
Сообщений: 162
18.10.2017, 12:46  [ТС] #5
Мне в файл scripts.js, нужно добавить функцию, чтобы я ее мог вызвать перед подключением файла scripts.js, вот так лучше будет

j2FunOnly, лучше помогли бы, то что я написал и так понятно, хотя написал я прикольно конечно, спешил
0
Balanaar
833 / 742 / 368
Регистрация: 11.07.2016
Сообщений: 2,218
18.10.2017, 14:31 #6
А как вы хотите вызывать функцию, которая ещё не объявлена?
0
j2FunOnly
Модератор
752 / 737 / 441
Регистрация: 05.06.2015
Сообщений: 1,745
18.10.2017, 15:27 #7
zmanz, и хотелось бы узнать зачем? Какие цели вы преследуете?
0
2849141
109 / 86 / 67
Регистрация: 06.10.2015
Сообщений: 223
18.10.2017, 20:31 #8
zmanz, Почему Вам вдруг понадобилось опустить подключение scripts.js из head в конец body?
0
j2FunOnly
Модератор
752 / 737 / 441
Регистрация: 05.06.2015
Сообщений: 1,745
18.10.2017, 21:44 #9
2849141, есть мнение что поместив скрипты перед закрывающим тегом </body> ускорит отображение страницы посетителю, ибо браузер останавливает рендер страницы на время выполнения JS кода. 1, 2 не хочу ни перепечатывать, ни переводить.

А ещё говорят что это уходит в прошлое с атрибутами async и defer из HTML5, а ещё говорят что скоро повсеместно будет HTTP2.0. И да говорят в Москве кур доЯт.
0
Уф
560 / 551 / 358
Регистрация: 13.07.2015
Сообщений: 1,650
Завершенные тесты: 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
Привет! Вот еще темы с решениями:

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

почему не работает функция?
Всем привет, Только начала изучение javascript, поэтому много чего не...

Почему не работает функция?
Почему не работает функция? function CircleMove() { ...

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


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

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

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