我有这个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());
有什么解决方案吗?谢谢。
答案 0 :(得分:7)
$。每个都不是异步的,所以你本身不需要回调。这将有效:
$(content).find('data').each(function(){
// parsing some data
$(this).find('something').each(function(){
$(this).find('something new').each(function(){
// etc.
});
}};
});
XYZ();
答案 1 :(得分:0)
如果你有任何异步过程,你应该在“/ / etc。”中调用“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();
}
});
}
});
}
});
}