如何运行以下代码的document.getElementById("myLinkID").onclick = '';
部分10秒? Javascript运行一个持续10秒的CSS动画,我不希望代码再次运行,直到动画结束。任何帮助将不胜感激。
function myFuction() {
var myVar = document.getElementById('myDivID');
if (myVar.style.display === 'none') {
myVar.style.display = 'block';
document.getElementById('myLinkID').onclick = '';
}
else {
myVar.style.display = 'none';
}
}
我尝试过以下但它只是冻结了。
function myFunction() {
var myVar = document.getElementById('myDivID');
var myVar2 = true;
while (myVar2 ) {
document.getElementById('myLinkID').onclick = '';
}
setTimeout(function myFunction() {
myVar2 = false;
}, 10000);
if (myVar.style.display === 'none') {
myVar.style.display = 'block';
} else {
myVar.style.display = 'none';
}
}
更新已修复:
function myFuction() {
var myVar = document.getElementById('myDivID');
setTimeout(function() {
myVar.style.display = 'none';
document.getElementById('myLinkID').onclick = myFunction;
}, 10000);
if (myVar.style.display === 'none') {
myVar.style.display = 'block';
document.getElementById('myLinkID').onclick = '';
}
else {
myVar.style.display = 'none';
}
}
答案 0 :(得分:1)
无需在循环中运行document.getElementById("myLinkID").onclick = '';
。将onclick
设置为空字符串后,在您再次更改之前它将不会执行任何操作。因此,运行该语句一次,然后设置超时10秒,以便在动画结束后恢复onclick
处理程序。
答案 1 :(得分:-1)
尝试使用webkitAnimationEnd事件来确定此函数是否已执行