调用2个其他函数时未定义函数

时间:2018-04-27 09:17:04

标签: javascript

我调用2个函数的函数回来了,因为未定义updatea工作正常updateb和updatec都返回未定义,我试图调用updateb然后使用updatec更新。

<script>    
$(document).ready(function() {

    $.get('php/beacon.php', function(response) {
        console.log(response);
        var row;
        response.forEach(function(item, index) {
            console.log(item);
            $(`td.${item.beacon}`).css('background-color', item.location).toggleClass('coloured');
        });
    });


    function updatea() {
    $('td.coloured').css({'background-color':'#8F8F8F','border-color':'black','border-width':'thin'}).toggleClass('coloured');
    $.get('php/test2.php', function(response) {
  console.log(response, );
    $.each(response, function(index, item) {
    console.log(item.beacon,item.delivery_avg,item.location)
         $(`td.${item.beacon}`).css({'background-color':item.location,'border-color':'black','border-width':'thin'}).addClass('coloured');
    });
});

function updateb() {
    $('td.coloured').css({'background-color':'#8F8F8F','border-color':'black','border-width':'thin'}).toggleClass('coloured');
    };

    function updatec(){
        updateb();
        updatea();
    }        
}
  var updatemyFunctionInterval = setInterval(updatec, 5000);
});
</script>

3 个答案:

答案 0 :(得分:0)

您似乎已将updateb声明为updateaupdatec的内部函数,作为updateb的内部函数。

您需要将函数updatebupdatec移出函数updatea

更新到以下

function updatea() {
    // your code 
}

function updateb() {
    // your code
}

function updatec(){
     updateb();
     updatea();
} 

var updatemyFunctionInterval = setInterval(updatec, 5000);

答案 1 :(得分:0)

您需要在通用范围内定义函数:

<script>
  $(document).ready(function() {

    $.get('php/beacon.php', function(response) {
      console.log(response);
      var row;
      response.forEach(function(item, index) {
        console.log(item);
        $(`td.${item.beacon}`).css('background-color', item.location).toggleClass('coloured');
      });
    });


    function updatea() {
      $('td.coloured').css({'background-color':'#8F8F8F','border-color':'black','border-width':'thin'}).toggleClass('coloured');
      $.get('php/test2.php', function(response) {
        console.log(response);
        $.each(response, function(index, item) {
          console.log(item.beacon,item.delivery_avg,item.location)
          $(`td.${item.beacon}`).css({'background-color':item.location,'border-color':'black','border-width':'thin'}).addClass('coloured');
        });
      });
    }

    function updateb() {
      $('td.coloured').css({'background-color':'#8F8F8F','border-color':'black','border-width':'thin'}).toggleClass('coloured');
    }

    function updatec(){
      updateb();
      updatea();
    }

    var updatemyFunctionInterval = setInterval(updatec, 5000);
  });
</script>

答案 2 :(得分:0)

在updatea的上下文中错误地定义了

updateb。 运行这个 -

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>    
    $(document).ready(function() {

        $.get('php/beacon.php', function(response) {
            console.log(response);
            var row;
            response.forEach(function(item, index) {
                console.log(item);
                $(`td.${item.beacon}`).css('background-color', item.location).toggleClass('coloured');
            });
        });


        function updatea() {
                $('td.coloured').css({'background-color':'#8F8F8F','border-color':'black','border-width':'thin'}).toggleClass('coloured');
                $.get('php/test2.php', function(response) {
                console.log(response, );
                $.each(response, function(index, item) {
                console.log(item.beacon,item.delivery_avg,item.location)
                    $(`td.${item.beacon}`).css({'background-color':item.location,'border-color':'black','border-width':'thin'}).addClass('coloured');
                });
            });
                
        }
    
        function updateb() {
            $('td.coloured').css({'background-color':'#8F8F8F','border-color':'black','border-width':'thin'}).toggleClass('coloured');
        };
            
        function updatec(){
            updateb();
            updatea();
        }
        var updatemyFunctionInterval = setInterval(updatec, 5000);
    });
</script>