gpt4 book ai didi

javascript - "Function factory"似乎不起作用,JavaScript

转载 作者:行者123 更新时间:2023-11-30 05:40:50 25 4
gpt4 key购买 nike

我正在循环显示一系列图像,并且我正在尝试实现某种裸露滤镜,所以我正在使用 nude.js ,一个可以检测裸体的库。这是代码:

// we're inside a loop
$(".images").prepend($("<img>").attr({src: whatever, id: uniqueid}).load(function(e) {
nude.load(e.target.id);
nude.scan(function(result) { if (!result) $(e.target).detach(); });
});

但是,它会分离所有错误的图像,因为 nude.js 很慢,并且它会在循环继续到后面的迭代后完成,分离这些图像而不是它正在处理的图像。

我试过使用函数工厂:

function generateCallback(arg) {
return function(result) { if (!result) $(arg).detach(); };
}

nude.scan( generateCallback(e.target) )

但同样的事情发生了。

我想要的是一个 load 事件,如果图像看起来包含裸体,它将删除该图像。我怎样才能正确地做到这一点?

编辑:nude.js 是这样工作的:

nude.load(imageid);
nude.scan(callback); // it'll pass true or false into the callback

另一个编辑:不小心从我发布的代码中省略了 id 设置,但它在我的真实代码中,所以我在这里添加它。

最佳答案

我怀疑这里的情况是这种顺序处理不适用于 nude.js。

查看 nude.js code ,我认为您的问题出现在对 nude.scan 的调用中。 nude.js 有一个变量,用于存储扫描完成后要调用的函数。当调用 nude.scan(callback) 时,这个变量被设置为 callback

来自您的 PasteBin ,似乎回调在第一次调用时按预期分配,但在第二次和后续调用中,它被替换,这就是为什么第二个图像被分离而不是第一个。

关于javascript - "Function factory"似乎不起作用,JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com