我仍然在尝试从嵌套回调函数中返回返回值,但是我已经没有想法了。
代码如下:
function addListener() {
var imgs = document.getElementsByClassName('img');
var ids = document.getElementsByClassName('item');
for (let i = 0; i < imgs.length; i++) {
let img = imgs[i];
img.addEventListener('click', function() {
var card_1 = function getId() {
var Id = ids[i].id;
return Id;
};
img.style.opacity = "1.0";
window.setTimeout(function() {
img.style.opacity = "0.0"
}, 2000)
});
}
}
提前感谢!
发布于 2018-07-02 05:19:02
很可能你需要使用回调,你不能从这个函数返回值,因为这个函数所做的工作是异步的:
function addListener(cb) {
var imgs = document.getElementsByClassName('img');
var ids = document.getElementsByClassName('item');
for (let i = 0; i < imgs.length; i++) {
let img = imgs[i];
var Id = ids[i].id;
img.addEventListener('click', function() {
cb(null,Id); // use an error-first callback
img.style.opacity = "1.0";
window.setTimeout(function() {
img.style.opacity = "0.0"
}, 2000)
});
}
}
如下所示调用函数:
addListener(function(err,id){
});
https://stackoverflow.com/questions/51125905
复制相似问题