Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript回调函数_Javascript_Jquery - Fatal编程技术网

JavaScript回调函数

JavaScript回调函数,javascript,jquery,Javascript,Jquery,我有这个jQuery脚本: $(content).find('data').each(function(){ // parsing some data $(this).find('something').each(function(){ $(this).find('something new').each(function(){ // etc. }}; }); }); …我想在脚本完成后调用函数XYZ 这不起作用,它将过早调用函数XYZ:

我有这个jQuery脚本:

$(content).find('data').each(function(){

  // parsing some data

  $(this).find('something').each(function(){

    $(this).find('something new').each(function(){

      // etc.

    }};

  });

});
…我想在脚本完成后调用函数XYZ

这不起作用,它将过早调用函数XYZ:

$(content).find('data').each(function(){

  // parsing some data



}, XYZ());

有什么解决办法吗?谢谢。

$。每个都不是异步的,因此不需要回调本身。这将有助于:

$(content).find('data').each(function(){
  // parsing some data
  $(this).find('something').each(function(){

    $(this).find('something new').each(function(){

    // etc.
    });
  }};
});

XYZ();

$。每个都不是异步的,因此不需要回调本身。这将有助于:

$(content).find('data').each(function(){
  // parsing some data
  $(this).find('something').each(function(){

    $(this).find('something new').each(function(){

    // etc.
    });
  }};
});

XYZ();

如果您有任何异步进程,您应该在//等中调用XYZ

var xData $(content).find('data'),
    lenData = $(xData).length;

if (lenData==0){
  XYZ();
}
else{
  $.each(xdata, function(index, value){
    // parsing some data

    var xsomething = $(this).find('something')
        lenxsomething = $(xsomething).length;

    if ((lenxsomething==0) && (lenData==(index+1))){
       XYZ();
    }
    else{
      $.each(xsometing, function(index2, value2){

        var xsomethingNew $(this).find('something new')
            lenxsomethingNew = $(xsomething).length;

        if ((lenxsomethingNew==0) && (lenxsomething==(index2+1))){
           XYZ();
        }
        else{
         $.each(xsomethingNew, function(index3, value3){
              //etc ..
              //then asynchronous process
              if (lenxsomethingNew==(index3+1)){
                 XYZ();
              }
          });
        }

      });
    }
  });
}

如果您有任何异步进程,您应该在//等中调用XYZ

var xData $(content).find('data'),
    lenData = $(xData).length;

if (lenData==0){
  XYZ();
}
else{
  $.each(xdata, function(index, value){
    // parsing some data

    var xsomething = $(this).find('something')
        lenxsomething = $(xsomething).length;

    if ((lenxsomething==0) && (lenData==(index+1))){
       XYZ();
    }
    else{
      $.each(xsometing, function(index2, value2){

        var xsomethingNew $(this).find('something new')
            lenxsomethingNew = $(xsomething).length;

        if ((lenxsomethingNew==0) && (lenxsomething==(index2+1))){
           XYZ();
        }
        else{
         $.each(xsomethingNew, function(index3, value3){
              //etc ..
              //then asynchronous process
              if (lenxsomethingNew==(index3+1)){
                 XYZ();
              }
          });
        }

      });
    }
  });
}