2014-01-24 2 views
2

Я сделал эту функцию:Запуск же JavaScript многочисленные функции раз, каждые 2 секунды

function menucount(bartype, div){ 
    $(document).ready(function(){ 
     $.ajax({ 
      url: 'ajax.php', 
      data:"opdate-menu="+bartype+"&bar=<?php echo $barnavn ?>", 
      success: function(data) { 
       $('#'+div).html(data); 
      } 
     }); 
    }); 
} 

Он проверяет наличие обновлений и отображает новый номер в моем меню кнопок. Я использую его следующим образом:

window.setInterval(menucount(), 2000); 

Это работает.

Теперь я хочу, чтобы запустить эту функцию на более кнопок, поэтому я создаю функцию «оболочку» и попробуйте запустить его так:

function wrapper(){ 
    menucount('manglerprint','printvip'); 
    menucount('manglerprint_plus','printvipplus'); 
    menucount('temp_vipplus','ansvipplus'); 
    menucount('temp_vipalm','ansvip'); 
} 

window.setInterval(wrapper(), 2000); 

Но это не работает, это работает только один из menucount() экземпляров. Как я мог запустить menucount() много раз?

ответ

2

Вы вызываете функцию один раз, используя wrapper() и передавая соответствующее сообщение undefined на номер setInterval().

Вы должен передать ссылку на функцию к setInterval() как

window.setInterval(wrapper, 2000); 

Примечания: Кроме того, первый пример, который также будет выполнен только один раз ...

+0

спасибо Аруна вы правы! Большое спасибо :) – Bolli

+0

Отметьте как ответ за 9 минут .. Еще раз спасибо, я все еще изучаю javascript. Ура! – Bolli

+0

Был ли способ загрузить данные только в том случае, если он изменился? – Bolli

Смежные вопросы