Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вызвать jQuery функцию из блока <script> на странице (https://javascript.ru/forum/jquery/64902-vyzvat-jquery-funkciyu-iz-bloka-script-na-stranice.html)

Alexks 12.09.2016 21:23

Вызвать jQuery функцию из блока <script> на странице
 
К html странице подключен файл tlist.js, содержимое:
jQuery(function($){
    $('#a_print').click(function(){
       // обработка click по a_print
    });

    var Autoload = function(){
      // AJAX запросы на сервер
    }
});


Чуть ниже на этой html странице блок
<script type='text/javascript'>
    var intervID = setInterval( window.Autoload, 20000);
</script>


Сообщений об ошибке нет, но и Autoload не вызывается. Помогите разобраться, пожалуйста.

рони 12.09.2016 21:26

Alexks,
строка 6 недоступна для интервала, уберите var

Alexks 12.09.2016 21:38

Убрал, но результат тот же - Autoload через интервал не вызывается, ошибок нет (кеш в браузере отключен).

На html странице расположены так
<script type='text/javascript' src='tlist.js'></script>
<script type='text/javascript'>
    var intervID = setInterval( window.Autoload, 20000);
</script>


Если вызывать функцию из интервала так
<script type='text/javascript'>
    var intervID = setInterval( Autoload(), 20000);
</script>

То появляется сообщение об ошибке: ReferenceError: Autoload is not defined

рони 12.09.2016 22:42

Цитата:

Сообщение от Alexks
Если вызывать функцию из интервала так

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

рони 12.09.2016 22:43

Alexks,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>

jQuery(function($){
    $('#a_print').click(function(){
       // обработка click по a_print
    });

    Autoload = function(){  alert('abracadabra');
      // AJAX запросы на сервер
    } ;

});
  Autoload()
  </script>

<script type='text/javascript'>


    var intervID = window.setInterval(function() {
   Autoload()
},5000);


</script>

</head>

<body>


</body>
</html>


Часовой пояс GMT +3, время: 11:27.