如何在同一个函数中重复函数?
How to repeat function inside the same function?
首先,我在函数(a) 中遍历一个数组,并将事件侦听器添加到所有数组项。然后,当单击事件时,我 运行 function(b),然后我想重新添加被单击的事件侦听器,因此如果单击相同的数组项,我可以再次重复 function(b) .
Array.forEach(function(a) {
a.addEventListener("click", function(b) {
if ( 1 == 1){
//some code//
a.addEventListener("click", ***???*** )
}
})
});
我把 ??? 放在我认为解决方案的地方,但显然我不确定。
编辑 11.45;
let days = document.getElementsByClassName("day");
let daysArray = Array.from(days);
daysArray.forEach(function(current) {
current.addEventListener("click", function() {
if (current.classList.contains("purpleHover")){
current.classList.remove("purpleHover")
current.classList.add("correct")
current.addEventListener("click", this())
}
else{
current.classList.add("purpleHover")
current.classList.remove("correct")
}
});
})
根据 MDN:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
默认情况下,当您添加 EventListener 时,它会为每个事件调用,除非您将选项 once
指定为 true,因此您的代码应该只是:
Array.forEach(function(a) {
a.addEventListener("click", function(b) {
//some code//
})
});
首先,我在函数(a) 中遍历一个数组,并将事件侦听器添加到所有数组项。然后,当单击事件时,我 运行 function(b),然后我想重新添加被单击的事件侦听器,因此如果单击相同的数组项,我可以再次重复 function(b) .
Array.forEach(function(a) {
a.addEventListener("click", function(b) {
if ( 1 == 1){
//some code//
a.addEventListener("click", ***???*** )
}
})
});
我把 ??? 放在我认为解决方案的地方,但显然我不确定。
编辑 11.45;
let days = document.getElementsByClassName("day");
let daysArray = Array.from(days);
daysArray.forEach(function(current) {
current.addEventListener("click", function() {
if (current.classList.contains("purpleHover")){
current.classList.remove("purpleHover")
current.classList.add("correct")
current.addEventListener("click", this())
}
else{
current.classList.add("purpleHover")
current.classList.remove("correct")
}
});
})
根据 MDN:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
默认情况下,当您添加 EventListener 时,它会为每个事件调用,除非您将选项 once
指定为 true,因此您的代码应该只是:
Array.forEach(function(a) {
a.addEventListener("click", function(b) {
//some code//
})
});