setTimeout没有完全工作
setTimeout not completely working
本文关键字:工作 setTimeout 更新时间:2023-09-26
在下面的代码中,我的moveit()
函数中的div
动画正在等待.click
函数中的setTimeout()
,但moveit()
中的p.font-size
动画在点击后立即发生。它没有等待超时。我相信这是一个基本问题,但这就是我现在所处的水平。
谢谢你的建议,
<script type="text/javascript">
$(document).ready(function(){
$("#no").click(function() {
$("#sleep").animate({"border-width": "10px"}, "fast");
$("#sleepanswer").animate({ opacity: 0 }, "fast");
$("p:.sleepquestion").replaceWith("That is too bad. Tonight you will sleep better.");
setTimeout(moveit, 2000);
});
$("#yes").click(function() {
$("#sleepanswer").animate({ opacity: 0 }, "fast");
$("p:.sleepquestion").replaceWith("That is great! A good night sleep is important.");
setTimeout(moveit, 2000);
});
});
</script>
<script type="text/javascript">
function moveit() {
$("#sleep").animate({"left": "10px", "width": "150px"}, "slow");
$("p.sleepquestion").animate({"font-size": "16px"}, "slow");
$("#sleepanswer").animate({ "left": "-9999px"}, "fast");
}
</script>
我认为问题可能出在你使用.replaceWith()
上。它试图用另一个元素替换一个元素,但您已经尝试用文本替换一个元素。我认为你只是想用.html()
代替。
同样,您不需要使用setTimeout()
-您可以使用.delay()
代替。我认为你的选择器p:.sleepquestion
可能不对。你可以这样写:
<script type="text/javascript">
$(document).ready(function(){
$("#no").click(function() {
$("#sleep").animate({"border-width": "10px"}, "fast");
$("#sleepanswer").animate({ opacity: 0 }, "fast");
$("p.sleepquestion").html("That is too bad. Tonight you will sleep better.");
moveit();
});
$("#yes").click(function() {
$("#sleepanswer").animate({ opacity: 0 }, "fast");
$("p.sleepquestion").html("That is great! A good night sleep is important.");
moveit();
});
});
</script>
<script type="text/javascript">
function moveit() {
$("#sleep").delay(2000).animate({"left": "10px", "width": "150px"}, "slow");
$("p.sleepquestion").delay(2000).animate({"font-size": "16px"}, "slow");
$("#sleepanswer").delay(2000).animate({ "left": "-9999px"}, "fast");
}
</script>
我也把.replaceWith()
改成了.html()
,把p:.sleepquestion
改成了p.sleepquestion
。
你的函数moveit也可以这样写,把超时放在函数里面:
function moveit() {
setTimeout(function() {
$("#sleep").animate({"left": "10px", "width": "150px"}, "slow");
$("p.sleepquestion").animate({"font-size": "16px"}, "slow");
$("#sleepanswer").animate({ "left": "-9999px"}, "fast");
}, 2000);
}
我有同样的问题,在setTimeout()不工作的函数调用。我通过将函数调用用引号括起来解决了这个问题。
例如: $("#yes").click(function() {
$("#sleepanswer").animate({ opacity: 0 }, "fast");
$("p:.sleepquestion").replaceWith("That is great! A good night sleep is important.");
setTimeout("moveit()", 2000);
});
相关文章:
- 刷新后,setTimeout将工作或不工作
- 使setInterval和setTimeout工作时出现问题
- 为什么我需要在setTimeout中有匿名函数才能使此代码工作
- window.open没有't在设置setTimeout内工作-弹出窗口被阻止
- 如何使setTimeout脚本在html表单中正常工作
- SetTimeout延迟未按jquery幻灯片中的预期工作
- setTimeout()在JavaScript中是如何工作的
- Javascript-为什么不是't此setTimeout函数正在工作
- setInterval工作setTimeout不工作;t
- setTimeout未按要求工作
- 为什么javascript setTimeout()不能在循环中工作
- setTimeout方法的工作原理很奇怪
- 变量在Javascript中是如何工作的?可以在setTimeout期间更改变量值
- Javascript:addEventListener 仅在 setTimeout 中工作
- 如何删除 settimeOut 的队列工作
- 在工作线程中使用 setTimeOut
- 无法在 javascript 中获取 setTimeout 以正常工作
- 在循环中调用 setTimeout 未按预期工作
- setTimeout() 如何在 JS 上工作
- JavaScript代码首先使用setTimeout工作,但随后崩溃或不起作用