我是编码方面的新手,这是我的第一个问题,所以我会尽力解释清楚。
我有一个图像滑块,我正在尝试更改每张幻灯片中的文本。我在JavaScript中有Mutation Observer,它正在监视类列表以进行类更改,因此,当div具有“活动”类时,我将抛出一个回调函数。
轮播中有很多图像滑块;
carousel.forEach(e=>{
let i= 1;
let workOnClassAdd=`workOnClassAdd${i}`
new ClassWatcher(e, 'active',workOnClassAdd,workOnClassRemoval)
i++;
})
function workOnClassAdd1(){};
function workOnClassAdd2(){};
.
.
因此,在这段代码中,我试图创建具有不同功能的观察者,但workOnClassAdd看起来像一个字符串,因此出现“这不是函数”错误。我如何在此forEach方法中抛出不同的变量?
仍然感谢,良好的编码:)
您可以编写返回函数的函数。类似于:
function getCallbacksFor(iValue) {
return [
function workOnAdd() {
console.log('add class work for', iValue);
},
function workOnRemove() {
console.log('remove class work for', iValue);
},
];
}
carousel.forEach((e, idx) => {
new ClassWatcher(e, 'active', ...getCallbacksFor(idx))
})