Задать вопрос
ddimonn8080
@ddimonn8080

Как правильно вызвать функцию?

В head подключил jquery:

<head>
  <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
  <script src="js/script.js"></script>
</head>
<body>
...
...
<script type="text/javascript">
  foo();
</script>
</body>

В файле script.js есть функция jQuery, например:

$(document).ready(function(){
  function foo(){
    //some code
  }
});

Почему не срабатывает вызов функции из тега script в конце body?
Такой вызов будет работать только на чистом яваскрипт?
Если можно объясните подробней что не так? И где можно почитать об этом нюансе?
  • Вопрос задан
  • 161 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
kalyukdo
@kalyukdo
Frontend developer
тут сразу два фактора

1) область видимости
2) вы ее вызываете до события document.ready

Если вы хотите сделать сделать ее доступной глобально, то лучше сделать так:

(function(window){

function foo(){

}

window.foo = foo;

)(window)


таким образом вы ее поместить в глобальную область видимости,

Если говорить о jQuery

если вы объявляете функции внутри jq, то и вызывать их лучше оттудаже
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Wheelie
Могу ошибаться, но ваша функция вызывается, когда ее еще нет. Попробуйте обернуть в теге скрипт тоже в документ реди.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы