jQuery Ajax调用未在for循环中执行

格西奥

使用此功能

  function readPinMode(callback,pin){
     $.ajax({
        type: 'GET',
        url: path,
        data: {
        'funct': "readPinMode", //function included and working ou of loops
        'pin': pin,
        'php': 0
     },
     success: function (result) {
        //console.log(result);
        callback(result);
     },
        error: function (xhr, textStatus, error) {
        console.log(xhr);
        console.log(textStatus);
        console.log(error);
    }
   });
 };

这样,根本不做任何事情:

      $( document ).ready(function() {
  <?php
  $js_array = json_encode($GLOBALS['gpio']); // got from included file, working
  echo "var pins = ". $js_array . ";\n";
  ?>
  console.log( "Document ready." );
  for (i = 0; i < pins.length; i++) {
        var mode = "m" + pins[i];
        function initMode(){
        readPinMode(function(ret){
        console.log(ret);
        $(mode).text(ret);
        console.log(mode);
      }, pins[i]);
    };
  }

它进入for循环(我可以登录控制台modepins[i],它们正在工作),但似乎未调用该函数。控制台不显示任何内容。

有办法解决吗?谢谢

CodeGodie

使用回调函数没有错,但是您确实错过了几件事。您忘记了调用initMode函数,它mode应该是您提到的ID:

<script>
    function readPinMode(callback, pin) {
        $.ajax({
            type: 'GET',
            url: 'SGWEB/header.php',
            data: {
                'funct': "readPinMode", //function included and working ou of loops
                'pin': pin,
                'php': 0
            },
            success: function (result) {
                callback(result);
            },
            error: function (xhr, textStatus, error) {
                console.log(error);
            }
        });
    }

    function initMode(mode, pin) {
        readPinMode(function (ret) {
            $(mode).text(ret);
        }, pin);
    }

    $(document).ready(function () {
        var pins = <?= json_encode($GLOBALS['gpio']) ?>;
        for (i = 0; i < pins.length; i++) {
            var mode = "#m" + pins[i];
            initMode(mode, pins[i]);
        }
    });
</script>

这是我创建FIDDLE,以便您可以了解其工作原理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery Ajax调用未在for循环中执行

来自分类Dev

For循环中的JQuery / Ajax调用

来自分类Dev

在循环中调用 jQuery Ajax 给我 503 错误

来自分类Dev

jQuery AJAX调用for循环

来自分类Dev

jQuery Ajax循环调用

来自分类Dev

jQuery睡眠未在ajax请求上执行

来自分类Dev

如何让jquery在循环中的每个ajax调用后立即追加输出

来自分类Dev

While 循环中的 Ajax 更新 - JQuery

来自分类Dev

jQuery在3个AJAX调用和循环完成后执行

来自分类Dev

jQuery Ajax加载图像未在Ajax调用上加载

来自分类Dev

jQuery延迟了ajax调用的执行

来自分类Dev

jQuery,同时执行ajax调用和$ .when

来自分类Dev

jQuery延迟了ajax调用的执行

来自分类Dev

在ajax调用上执行的jQuery对象方法

来自分类Dev

JQuery Ajax 调用 php 未执行

来自分类Dev

jQuery异步AJAX调用的While循环

来自分类Dev

在jquery中为ajax调用制作循环

来自分类Dev

Ajax调用后在Jquery中循环

来自分类Dev

从jQuery的for循环中调用var i获取请求

来自分类Dev

jQuery load()在循环中

来自分类Dev

jQuery load()在循环中

来自分类Dev

循环中的jQuery元素

来自分类Dev

jQuery ajax调用未在headers属性中发送日语字符

来自分类Dev

ajax成功错误函数未在jquery中调用

来自分类Dev

Spring MVC响应未在jQuery Ajax调用中加载

来自分类Dev

使用ajax回调在每个循环中延迟Jquery

来自分类Dev

.each()循环中的ajax完成后,jQuery运行代码

来自分类Dev

在while循环中使用jQuery AJAX请求

来自分类Dev

嵌套循环中的Ajax API调用需要按顺序执行