打开和关闭元素的 onclick 属性



我试图延迟加载图像网格上的弹出窗口,但希望在发生这种情况时无法单击其他图像。但是,如果我关闭onclick"item.onclick=false",当弹出窗口重新打开时,我似乎无法将其重新打开?请参见行"item.onclick=true"。也尝试过disabled=true/false,但没有成功。有什么建议吗?

var caseStudies = document.querySelectorAll('.posterImage');
var caseHover = document.querySelectorAll('.caseHover');
var modal = document.querySelectorAll('.modal');
caseStudies.forEach((button, index) => {
if ((isMobile == true) || (isTablet == true)) {
button.onclick = function(event) {
caseStudies.forEach((item) => {
item.onclick = false;
console.log(item);
});
caseHover.forEach((item) => {
item.classList.add('eventsNone');
console.log(item);
});
setTimeout(function(){
console.log("loading");
modal[index].style.display = "block";

// When the user clicks anywhere outside of the modal, close it (needs to live inside the button.onclick)

window.onclick = function(event) {
if (event.target == modal[index]) {
modal.forEach((item) => {
item.style.display = "none";
});
caseStudies.forEach((item) => { 
item.onclick = true;
}); 
}
}
},  500); 
}
}   
else
{
button.onclick = function(event) {
console.log("route2");
modal[index].style.display = "block";
caseStudies.forEach((item) => {
item.classList.add('eventsNone')
});
// When the user clicks anywhere outside of the modal, close it (needs to live inside the button.onclick)
window.onclick = function(event) {
if (event.target == modal[index]) {
modal.forEach((item) => {
item.style.display = "none";
});
caseStudies.forEach((item) => {
item.classList.remove('eventsNone')
});
};
};
};  
};
});

使用内联onclick = "function()"设置onclick。

禁用联机时,请使用element.onclick = null

并使用element.onclick = "function()"再次启用

很抱歉在我错过阅读并认为你是在用按钮做这件事之前把它弄错了。

这里还有一个重复的问题,如何禁用或启用页面上的所有onClick图像

最新更新