使用change事件每5秒执行一次jquery

时间:2015-12-17 07:46:12

标签: javascript jquery

我有一个图表,它将每5秒更新一次,以显示有多少用户进入了建筑物,并且用户可以选择每层楼的用户数量。这也是每5秒更新一次

下面是我的代码,让用户进入建筑物

var interval = 5000; 
function get_Users() {
     var users=   $.ajax({
            type: 'POST',
            url: '<?php echo base_url('index.php')?>/building/feed',
            data: $(this).serialize(),

            success: function (users) {
                 $('.current').html(users); 

            },
            complete: function (users){

                    setTimeout(get_Users, interval);
            }
    });
}
setTimeout(doFeed, interval);
下面的

用于获取每层楼的用户

$(document).on('change','.floor',function(){
    $.ajax({
        url: 'floor/chart',
        type: 'post',
        data: asset,
        dataType: 'json',
        success: function (users) {

             $(".current").html(users.floor);
        },


    });
});

我需要做的是成功更改后,每隔5秒发布并获取图表值。

怎么办呢?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

你可以通过为change处理程序创建一个命名函数并在第一个函数完成后触发timeout函数,就像你为代码中的其他函数完成它一样。

$(document).on('change','.floor',changeFloorHandler);

 function changeFloorHandler() {
   $.ajax({
    url: 'floor/chart',
    type: 'post',
    data: asset,
    dataType: 'json',
    success: function (users) {
         $(".current").html(users.floor);
    },
    complete: function (users){
        setTimeout(changeFloorHandler, interval);
    }
  });
 }

注意:我建议您在代码中使用通用ajax函数,其中包含callback timeout函数引用的自定义参数,而不是多个函数定义,以避免多余代码。